使用浮点指令以十进制格式获取结果

Ash*_*hir 5 assembly mips

嗨,我正在用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不是一个可识别的运算符.

所以,我几乎是空白.我不明白该怎么做.

有人可以发布代码来显示浮点结果吗?

提前致谢.

Ash*_*hir 6

好的,经过长时间的尝试和错误,正确的方式来打印真实的结果是:

使用伪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的真实结果.