【发布时间】:2019-05-08 12:58:20
【问题描述】:
问题围绕着 MIPS 程序集。
假设在程序开始时寄存器 $sp(堆栈指针)的值是 $sp = 0x1000。
然后我写命令:addi $sp, $sp, -12
现在 $sp 的价值是多少?
会是 0xFF4 吗? (因为十六进制的 12 是 C,我们从 1000 中减去)
或者我需要将 12 乘以 4(因为 4 字节是字的大小 = 32 位)然后减去?
【问题讨论】:
-
它以字节为单位,所以
0xff4。您可以在调试器/模拟器中轻松检查这一点。从技术上讲,$sp只是另一个通用寄存器(毕竟是$29),所以没什么特别的。如果你写add -12,那将会发生。 -
谢谢!在考虑它只是另一个寄存器之后,它看起来确实很明显
标签: assembly architecture hex mips cpu-registers