MIPS 加载字布局

MIPS Load Word Placing

我有一个关于从 MIPS 中的数组加载字的问题。 如果数组“A”以 100h 的内存位置开始,并且我想将这个词加载到寄存器中,如果我做这样的事情会没问题,

lw $t0, 0x100($t2)

尽管偏移位置是内存位置,偏移量 ($t2) 在基地址中?我看到它的方式是 $t2 + 0x100 与 0x100 + $t2。 或者是唯一正确的方法是做

lw $t0, $t2(0x100)

?

+是可交换的,硬件只关心最终地址是什么。

asm 源语法只允许 constant(reg) 所以当然要写成 A($t2)

如果允许使用其他语法,则机器代码将是相同的; lw 指令只有一种形式,即带有寄存器和 16 位立即数的 I 型。