我的方法是将int寄存器溢出并加载到float寄存器然后转换
li $t0, 2
sw $t0, -88($fp)
l.s $f4, -88($fp)
cvt.d.s $f6, $f4
我正在尝试翻译像
这样的表达式float a = 3.0;
float b = a / 2;
但上述方法并没有给我一个正确的答案(打印出inf
)。
那我哪里做错了?有什么建议吗?
P.S。 2
不知道lhs操作数是浮点类型,因此我无法加载2.0
答案 0 :(得分:1)
您使用的是不正确的后缀; .d
将以双字(64位)运行。这就是你想要的:
li $t0, 2
sw $t0, -88($fp)
lwc1 $f4, -88($fp)
cvt.s.w $f6, $f4