使用MIPS汇编代码时,我一直在使用li命令将常量存储在寄存器中。但是,我正在尝试使用我的一些代码并将所有伪指令分解为普通的MIPS指令。
通过研究,我了解到li翻译成两个指令:lui和ori。
例如,
li $ 8,0x3BF20 转换为
lui $ 8,0x0003
ori $ 8,$ 8,0xBF20
但是,我不太确定lui和ori是做什么的,我不确定它是如何产生与li相同的结果。
答案 0 :(得分:2)
lui
(Load Upper Immediate)正在加载寄存器的上半部分。清理下半部分; ori
(或立即)是" loading"下半部分通过命令寄存器w /值进入下半部分。
答案 1 :(得分:1)
阅读手册,一个修改整个寄存器的半个零,你指定的另一个是逻辑或16位对着寄存器(在这种情况下击中其他16位,lui归零)