如何转换MIPS指令,例如addi $1,$2,90000
如果我的操作码为001 000,函数字段为10 0000,相应的寄存器为“rs”,“rt”字段,则90000到十六进制为5位数而不是4 ....所以我的总十六进制表示不适合8位数。
实际上,当有一个巨大的数字弄乱了十六进制表示时,我更感兴趣的是如何从十六进制到MIPS。
答案 0 :(得分:1)
答案 1 :(得分:1)
MIPS汇编程序通常会实现“合成指令”,这些指令会变成多个实际指令。例如,具有32位立即数操作数的addi
合成指令可以变为lui
(将立即数的前16位加载到目标寄存器中),然后是{{1} (加上立即数的最后16位),然后是addi
(在源寄存器中添加)。
因此,没有一条与add
对应的指令。如果您的汇编程序接受了这一点,您将发现它反汇编它产生的内容(或检查列表文件是否生成一个),它实际上为该单行汇编生成了多个机器指令。