gpt4 book ai didi

assembly - 使用浮点指令得到十进制结果

转载 作者:行者123 更新时间:2023-12-04 17:12:32 26 4
gpt4 key购买 nike

嗨,我正在用 MIPS 编写一个小程序,将 2 除以 9 并显示结果。这是代码

li $t1, 2
li $t2, 9
li $v0, 2
div $t0,$t2,$t1
move $a0,$t0
syscall

(这不是完整的代码,只是部分处理部分)

所以,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

显然,准备打印一个浮点数
li $v0, 2

在除法而不是 div $t0,$t2,$t1我应该用
div.s $f12,$f1,$f2

而不是 move $a0,$t0我应该只是
syscall

不需要移动,div.s 会立即打印出结果,因此没有真正需要将 $f12 的内容移动到 $a0 来打印其内容。

mars 没有实现伪 li.s. 真是太可惜了。我不得不在 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

当您运行它时,您将得到 0.22222222,即 2 除以 9 的真实结果。

关于assembly - 使用浮点指令得到十进制结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6515799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com