我正在学习如何做MIPS,我对乘法感到困惑。假设我正在将以下C代码转换为MIPS。
c = b + a*3
a,b,c分别存储在寄存器$ s1,$ s2,$ s3中。我怎么能用MIPS写一个* 3?是否存在用于乘法的addi类型指令,或者我将3存储在临时寄存器中并使用这样的mult运算符?
addi $t0, $zero, 3
mult $s1,$t0
如果是这样,我如何获得此操作的最终值或产品来完成我的C代码?
答案 0 :(得分:3)
MIPS指令集不提供具有立即值的多指令。因此,您必须将值存储到临时寄存器中,然后使用多指令。 mult指令的结果将存储在lo和hi寄存器中,分别给出结果的低32位和结果的高32位。