1

假设我在 MIPS 中有以下命令:

sw $t0, 0($sp) # $sp=-4

这是否意味着寄存器 $t0 从 0 保存到 -3 字节或从 -4 保存到 -7 字节?

4

1 回答 1

0

堆栈在内存中向下增长,为要保存的新数据腾出空间。栈指针$sp指向栈顶。

堆栈指针$sp从高内存地址开始,并根据需要递减以扩展。图 (b) 显示堆栈扩展以允许更多两个数据字临时存储。为此,$sp递减8成为0x7FFFFFF4。两个额外的数据字 0xAABBCCDD0x11223344临时存储在堆栈中。

因此,在您的情况下,如果我很好地理解了您的问题sw,则该词是可寻址的,并且该词将存储在内存中$sp指向的那个位置。如果您存储下一个单词,它的偏移量必须为4. [哈里斯&哈里斯]

堆

更新

举这个例子,当你使用lb 说你有这个词0x23456789

当使用lb $s0,1($0)加载字节指令后,lb $s0, 1($0), $s0将包含0x00000045在大端系统和0x00000067小端系统上。[Harris&Harris]

大端

于 2017-05-07T18:23:52.107 回答