我正在编写一个MIPS程序,它分配两个或多个双精度浮点数的多维数组并将它们加在一起,但似乎我没有理解添加双精度浮点数的概念。
我已经知道在使用双精度时我必须使用$ f寄存器,我写了这个简单的程序而且我不明白它为什么不能正常工作。
.text
main:
li $v0,6 # getting first number
syscall
mov.d $f4,$f0
mov.d $f12,$f4
li $v0,2
syscall
li $a0,10 # new line
li $v0,11
syscall
li $v0,6 # getting second number
syscall
mov.d $f6,$f0
mov.d $f12,$f6
li $v0,2
syscall
li $a0,10 # new line
li $v0,11
syscall
add.d $f12,$f4,$f6 # add them together and show the result
li $v0,2
syscall
li $v0,10
syscall
.data
示例运行:
**** user input : 1.22
1.22
**** user input : 4.66
4.66
-4.525653E-39
-- program is finished running --
谢谢。
答案 0 :(得分:2)
Syscall 6读取单精度浮点数。如果您要添加双精度数,请先将单个精度值转换为使用cvt.d.s
的双精度值,或者切换到使用系统调用7(读取双精度数)和3(打印双精度数)。