Ошибка неправильного типа операнда MIPS. Загрузка данных в регистр

Ошибка неправильного типа операнда MIPS. Загрузка данных в регистр

.data
    myMessage: .word 2
    myMessage2: .word 24
.text
    add $t0, $zero, myMessage 
    add $t1, $zero, myMessage2

почему он говорит неправильный тип? Я подумал, поскольку myMessage является целым числом, все будет в порядке ... (впервые с использованием MIPS)


person elizaburkey    schedule 26.01.2016    source источник


Ответы (1)


Технически myMessage - это адрес того места в памяти, где находится слово 2.

MIPS использует архитектуру загрузки / сохранения, что означает, что если вы хотите использовать некоторые данные в памяти в качестве операнда, вы должны сначала загрузить их в регистр:

la $a0, myMessage   # Get the address
lw $t0, ($a0)       # Get the value at that address

Возможно, вам удастся написать lw $t0, myMessage, если ассемблер позаботится о том, чтобы преобразовать это в правильную последовательность инструкций для вас.

person Michael    schedule 26.01.2016