В моей программе Mips мне нужно сохранить значение переменной в стеке, но когда я пытаюсь сохранить его в том месте, на которое указывает указатель стека, я получаю синтаксическую ошибку (в последней строке, показанной ниже) в QtSpim. Для меня это правда, что мы можем переключить регистр с плавающей запятой на позицию в стеке. Я действительно не понимаю причину этой ошибки и буду признателен за любую помощь.
li.s $f12,4.0
s.s $f12,A
addi $sp,$sp,-4
sw $ra,0($sp)
addi $sp,$sp,-4
l.s $f18,A
sw $f18,0($sp) #causes syntax error !
sw
: у него есть только 5-битное поле, чтобы указать, какой целочисленный регистр хранить. Код операции, хранящий регистры FP, имеет другую мнемонику. (Кстати, вам не нужны две отдельные инструкцииaddi
. Просто изменитеsp
один раз и используйте хранилища со смещениями0(sp)
и4(sp)
.) Кроме того, если бы вы использовали целочисленный регистр для копирования 4 байтов изA
в стек, вы могли бы использоватьsw
. - person Peter Cordes   schedule 22.01.2019