在MIPS中,我如何将此表达式转换为MIPS?
y = 2x+3z
(x,y,z是变量)
我使用multi $t0,$s0, 2 # $s0 stores x and $s1 stores y.
来显示2x
。这是对的吗?
答案 0 :(得分:2)
我们假设:
x在$ s0中
z在$ s1中
y将在$ s2中
add $s2, $s0, $s0 # x*2 in $s2
add $t0, $s1, $s1 # z*2 in $t0
add $t0, $t0, $s1 # z*3 in $t0
add $s2, $s2, $t0 # x*2+z*3 in $s2
我们实际上并没有乘法(它比简单的加法慢)并且你可以看到我们销毁临时寄存器$ t0但是不要触及$ s0 / $ s1