MIPS汇编li伪指令

时间:2014-06-12 15:23:11

标签: assembly mips

li(立即加载)MIPS中的伪指令是否会根据常量的符号和大小以不同的方式将常量加载到寄存器中?当例如常数是二进制补码中的16位数(-2 ^ 15 <= k <2 ^ 15)而不是正数(0 <= k <2)时,li被翻译成不同的指令^ 16)? 32位数字怎么样?

我发现的链接没有具体说明。如果你用例子解释它(我使用MARS模拟器),那就太好了。

1 个答案:

答案 0 :(得分:3)

当立即常量可以表示为16位二进制补码数时,汇编器将

LI转换为单个指令。 (通常为addiu $dst, 0, imm)。

当立即常量太大而不能表示为16位二进制补码数时,

LI由汇编程序转换为LUI(加载上限立即),后跟ORI