0
我是MIPS編程的新手,並且無法理解如何從用戶讀取兩個浮點數後乘以兩個浮點數。如何將參數轉換爲單精度浮點數?當我運行程序時,它將結果打印爲0.0而不是數字乘以常數。有人可以向我解釋爲什麼它打印0.0而不是正確的數字?MIPS浮點乘法
.data
prompt: .asciiz "Enter the amount: "
newline: .asciiz "\n"
float1: .float 0.0
const: .float 121.28
.text
.globl main
main:
li $v0, 4 #calls print_string code 4
la $a0, prompt #pointer to string
syscall
#get amount from user
li $v0, 6 #call read_float code 6
syscall
la $a0, float1 #loads address of float1
l.s $f1, 0($a0) #a0 --> float1
la $a1, const #loads address of const
l.d $f2, 0($a1) #a1 --> float2
#calculates
mul.s $f1, $f1, $f2 #f1 = f1*f2
#prints resulting amount
li $v0, 2 #calls print_float code 2
syscall
#continual loop
li $v0, 4 #calls print_string code 4
la $a0, newline #pointer to string
syscall
j main #jumps to beginning of main
如果你覺得有點應該很明顯,'read_float'不能神奇地將輸入讀入'float1'。因此,你乘以零。如果您查閱手冊,您會看到'read_float'返回'$ f0'中的值。另外,學習使用調試器。 – Jester