我的方法是溢出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
)。
那我哪里做错了?有什么建议吗?
附注2
不知道 lhs 操作数是浮点类型,因此我无法加载 2.0
最佳答案
您使用的后缀不正确; .d
将在双字(64 位)上运行。这就是您想要的:
li $t0, 2
sw $t0, -88($fp)
lwc1 $f4, -88($fp)
cvt.s.w $f6, $f4
关于assembly - 在 MIPS 汇编中将 int 转换为 float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10696543/