首页 > 解决方案 > 如果我尝试从 Mips 中不是 4 对齐的地址加载一个字,应该是什么行为?

问题描述

lw $s0, 3($sp)我正在构建一个 Mips 汇编器,就其现在的状态而言,它可以容忍诸如来自一个单词,另外 3 个字节来自另一个单词。

换句话说,我应该处理数据,因为它是一个字数组(二维数组),所以我只能处理 4 对齐的字,或者一个一维数组,一个接一个地包含所有字节,我可以在其中访问任何 4 个连续字节并将它们塞进一个寄存器?

标签: mips

解决方案


MIPS 处理器应该在未对齐的地址上出错,但确定这一点不是汇编程序的工作。

警告可能是合理的,但从技术上讲,在构建时,您很少知道或预测寄存器中的内容。如果寄存器中的地址也是奇数,则偏移量 3 是合法的,并且可以与lwor一起使用。sw

此外,程序员可能会试图导致错误——你永远不知道。

关键是该指令具有有效的编码,并且汇编程序应将文本翻译成该机器代码。


推荐阅读