В этой инструкции mips:
lw $t1, 0x0BBB($t2)
где указывает 0x0BBB ($ t2)?
Я смущен, потому что смещение относится к регистру, а не к памяти.
Справочник по набору инструкций MIPS32 объясняет это довольно ясно: rt ← memory[base+offset]
Содержимое 32-битного слова в ячейке памяти, указанной выровненным эффективным адресом, выбирается, при необходимости дополняется знаком до длины регистра GPR и помещается в GPR rt
. 16-битный подписанный offset
добавляется к содержимому GPR base
, чтобы сформировать эффективный адрес.
Задача решена. t1 = 0BBB + значение (t2). Спасибо.
Нет, это не значит. Было бы $t1 = memory[$t2 + 0xBBB]
Помогает ли это: stackoverflow.com/a/31568617/9742036