【发布时间】:2014-04-24 21:00:03
【问题描述】:
我的朋友们,
我正在开发一个编译器程序,所以我无法理解当我将 3 代码地址传递给 Mips 程序集时,它会在简单的总和中出现错误,例如:
添加 $t0 , 1 ,1
它只接受:
添加温度,温度,1
如何将两个整数相加?我必须将第一个“1”存储在临时文件中吗?
非常感谢
【问题讨论】:
我的朋友们,
我正在开发一个编译器程序,所以我无法理解当我将 3 代码地址传递给 Mips 程序集时,它会在简单的总和中出现错误,例如:
添加 $t0 , 1 ,1
它只接受:
添加温度,温度,1
如何将两个整数相加?我必须将第一个“1”存储在临时文件中吗?
非常感谢
【问题讨论】:
是的。每条指令只有 32 位来编码操作、寄存器以及在您的情况下的立即值。仅立即数就消耗 16 位,因此没有任何具有 2 个立即数的指令。我还质疑为什么您需要两个直接值。如果您有两个常量要放入代码中,则计算答案并将答案放入您编写的指令中。
【讨论】: