如何将MIPS指令转换为大数字的十六进制?

时间:2011-02-21 02:09:34

标签: mips

如何转换MIPS指令,例如addi $1,$2,90000

如果我的操作码为001 000,函数字段为10 0000,相应的寄存器为“rs”,“rt”字段,则90000到十六进制为5位数而不是4 ....所以我的总十六进制表示不适合8位数。

实际上,当有一个巨大的数字弄乱了十六进制表示时,我更感兴趣的是如何从十六进制到MIPS。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

MIPS汇编程序通常会实现“合成指令”,这些指令会变成多个实际指令。例如,具有32位立即数操作数的addi合成指令可以变为lui(将立即数的前16位加载到目标寄存器中),然后是{{1} (加上立即数的最后16位),然后是addi(在源寄存器中添加)。

因此,没有一条与add对应的指令。如果您的汇编程序接受了这一点,您将发现它反汇编它产生的内容(或检查列表文件是否生成一个),它实际上为该单行汇编生成了多个机器指令。