假设我在 MIPS 中有以下命令:
sw $t0, 0($sp) # $sp=-4
这是否意味着寄存器 $t0 从 0 保存到 -3 字节或从 -4 保存到 -7 字节?
堆栈在内存中向下增长,为要保存的新数据腾出空间。栈指针$sp
指向栈顶。
堆栈指针$sp
从高内存地址开始,并根据需要递减以扩展。图 (b) 显示堆栈扩展以允许更多两个数据字临时存储。为此,$sp
递减8
成为0x7FFFFFF4
。两个额外的数据字
0xAABBCCDD
和0x11223344
临时存储在堆栈中。
因此,在您的情况下,如果我很好地理解了您的问题sw
,则该词是可寻址的,并且该词将存储在内存中$sp
指向的那个位置。如果您存储下一个单词,它的偏移量必须为4
. [哈里斯&哈里斯]
更新
举这个例子,当你使用lb
说你有这个词0x23456789
当使用lb $s0,1($0)
加载字节指令后,lb $s0, 1($0)
,
$s0
将包含0x00000045
在大端系统和0x00000067
小端系统上。[Harris&Harris]