浮点数的乘积
product of floating point numbers
我必须将两个双精度浮点数相乘并打印出来,我的代码如下:
li $v0, 7 # $v0 =7
syscall # run read_double
jal p4 # run println
mfc1 $v0, $f4 # $v0 = $f4
li.d $f2, 4.3934567
mul.d $f0, $f4, $f2
mov.d $f12, $f0 # $f12 = $f6
li $v0, 3 # $v0 =3
syscall # run print_double
jal p4 # run println
jr $ra
有人知道为什么这段代码 returns 总是 0 吗?
正如我在评论中提到的,系统调用 7 returns 浮点寄存器 $f0
中的结果。所以你的代码可以简化为:
li $v0, 7 # $v0 =7
syscall # run read_double
li.d $f2, 4.3934567
mul.d $f12, $f0, $f2 # multiply user input by $f2. put the result in $f12
# for easy printing.
我必须将两个双精度浮点数相乘并打印出来,我的代码如下:
li $v0, 7 # $v0 =7
syscall # run read_double
jal p4 # run println
mfc1 $v0, $f4 # $v0 = $f4
li.d $f2, 4.3934567
mul.d $f0, $f4, $f2
mov.d $f12, $f0 # $f12 = $f6
li $v0, 3 # $v0 =3
syscall # run print_double
jal p4 # run println
jr $ra
有人知道为什么这段代码 returns 总是 0 吗?
正如我在评论中提到的,系统调用 7 returns 浮点寄存器 $f0
中的结果。所以你的代码可以简化为:
li $v0, 7 # $v0 =7
syscall # run read_double
li.d $f2, 4.3934567
mul.d $f12, $f0, $f2 # multiply user input by $f2. put the result in $f12
# for easy printing.