不确定偏移是否意味着将指令从“加载字”中提取并存储一行(4字节)。程序计数器进入寄存器$ s0,4($ t0)。这如何在记忆中起作用?如果可能,请提供示例。
答案 0 :(得分:3)
LW和SW的功能可以在MIPS指令集中读取,Michael已经说过了。
但是,为了快速完成,我仍然在这里提供答案。 LW代表加载字。它从一个存储该值的地址向目标寄存器(rt)加载一个32位字值。
LW rt, offset(base)
让我们举一个简单的例子:
LUI T0, 0x8033
LW T1, 0x2550(T0)
上面的代码现在将加载位于地址的32位字值:
0x80332550
LUI中的值是地址的上半部分,而提供的偏移量0x2550是下半部分。现在,MIPS只是从0x80332550加载32位值。
让我们说0x80332550包含以下值:
0x80332550: 25 66 99 88 77 14 22 66
在LW指令之后,T1现在将包含值0x25669988。 (如果在big-endian上,在little-endian上它将是0x88996625)
SW与LW几乎相同,只是它将32位值存储到提供的地址而不是加载它。在这种情况下,rt寄存器作为价值持有者行事。