这个问题与MIPS程序有关。
让我们说,在程序开始时,寄存器$ sp(堆栈指针)的值是$ sp = 0x1000。
然后我编写命令:addi $ sp,$ sp,-12
现在$ sp的价值是什么?
会是0xFF4吗? (因为十六进制中的12为C,所以我们将其减去1000)
还是我需要将12乘以4(因为4字节是word的大小= 32位)然后相减?
答案 0 :(得分:1)
addi $ sp,$ sp,-12确实与addi $ t0,$ t0,-12没有区别-您要在寄存器的值上加上-12
因此,如果$ sp = 0x1000,则值为0x1000-12 = 0xFF4