Вопрос о значении регистра $ sp в MIPS - PullRequest
0 голосов
/ 06 декабря 2018

вопрос вращается вокруг сборки MIPS.

Допустим, в начале программы значение регистра $ sp (указатель стека) равно $ sp = 0x1000.

Тогда янапишите команду: addi $ sp, $ sp, -12

Каким будет значение $ sp сейчас?

Будет ли это 0xFF4?(поскольку 12 в шестнадцатеричном виде это C, а мы вычитаем его из 1000)

Или мне нужно умножить 12 на 4 (так как 4 байта - это размер слова = 32 бита), а затем вычесть?

1 Ответ

0 голосов
/ 07 декабря 2018

addi $ sp, $ sp, -12 действительно ничем не отличается от addi $ t0, $ t0, -12 - вы добавляете -12 к значению регистра

Так что если $ sp =0x1000, то значение 0x1000 - 12 = 0xFF4

...