"Memory limits" 在 mips 中使用 sw

"Memory limits" using sw in mips

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

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

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

堆栈在内存中向下增长,以便space 保存新数据。栈指针 $sp 指向栈顶。

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

所以在你的情况下,如果我很好地理解你的问题,sw 是词可寻址的,词将存储在内存中 $sp 指向的那个位置。如果您存储下一个单词,它必须具有 4 的偏移量。 [哈里斯&哈里斯]

更新

当你使用lb时就拿这个例子来说 假设你有这个词 0x23456789

当使用lb $s0,1([=22=])加载字节指令后,lb $s0, 1([=23=])$s0 在 big-endian 系统上包含 0x00000045 而在 小端系统。[Harris&Harris]