MIPS汇编程序指令参数

时间:2010-05-10 23:01:37

标签: assembly mips

为什么这样的指令

mul   $t1, $v0 , 4 

按预期评估。但是

mul   $t1, 4 , $v0 

会导致语法错误!

我想知道为什么第一个工作原理,因为mul只能在默认情况下使用寄存器,所以我希望只有像这样的解决方案才能工作

li   $t1, 4             # set $t1 = 4
mul   $t1, $v0 , $t1      # set $t1 = 4 * n

我正在使用SPIM模拟器。

2 个答案:

答案 0 :(得分:1)

好的,我建议查看操作码输出。也许为了速度目的,将乘以4换算或者立即换乘。可能无法通过此'优化'捕获4,reg版本,这就是它抛出错误的原因。

答案 1 :(得分:1)

这导致语法错误,因为MIPS仅支持伪指令mul [rs] [rt] [imm],而不支持mul [rs] [imm] [rt]。我假设它是为了保持一致性,因为MIPS中没有真正的指令支持指令中间的立即值。