有关MIPS中$ sp寄存器的值的问题

时间:2018-12-06 19:00:48

标签: assembly architecture hex mips cpu-registers

这个问题与MIPS程序有关。

让我们说,在程序开始时,寄存器$ sp(堆栈指针)的值是$ sp = 0x1000。

然后我编写命令:addi $ sp,$ sp,-12

现在$ sp的价值是什么?

会是0xFF4吗? (因为十六进制中的12为C,所以我们将其减去1000)

还是我需要将12乘以4(因为4字节是word的大小= 32位)然后相减?

1 个答案:

答案 0 :(得分:1)

addi $ sp,$ sp,-12确实与addi $ t0,$ t0,-12没有区别-您要在寄存器的值上加上-12

因此,如果$ sp = 0x1000,则值为0x1000-12 = 0xFF4