嗨,我正在用MIPS编写一个小程序,在9之间除以2并显示结果.这是代码
li $t1, 2
li $t2, 9
li $v0, 2
div $t0,$t2,$t1
move $a0,$t0
syscall
Run Code Online (Sandbox Code Playgroud)
(这不是完整的代码,只是部门处理部门)
所以,2/9是0.2222222222222222
但是当我运行它时我只得到0.0
我如何显示真实结果(0.2222222222222222)?
我曾经说过我使用的是整数而不是浮点数,我必须使用浮点指令来获得十进制结果.我应该查看div.x指令,但div.x不是一个可识别的运算符.
所以,我几乎是空白.我不明白该怎么做.
有人可以发布代码来显示浮点结果吗?
提前致谢.
好的,经过长时间的尝试和错误,正确的方式来打印真实的结果是:
使用伪li.s设置2个浮点寄存器(感谢Paul R指向我正确的方向)
li.s $f1, 2.0
li.s $f2, 9.0
Run Code Online (Sandbox Code Playgroud)
显然,准备打印一个浮子
li $v0, 2
Run Code Online (Sandbox Code Playgroud)
在师而不是div $t0,$t2,$t1我应该使用
div.s $f12,$f1,$f2
Run Code Online (Sandbox Code Playgroud)
而不是move $a0,$t0我应该
syscall
Run Code Online (Sandbox Code Playgroud)
没有必要移动,div.s立即打印结果,因此没有必要将$ f12的内容移动到$ a0来打印其内容.
真正的耻辱是火星不会伪造伪李.我不得不在PCSPIM上尝试这个...
最终的代码是
.globl main
.text
main:
li.s $f1, 2.0
li.s $f2, 9.0
li $v0, 2
div.s $f12,$f1,$f2
syscall
li $v0, 10
syscall
Run Code Online (Sandbox Code Playgroud)
当你运行它时,你会得到0.22222222,这是将2除以9的真实结果.