问题
How do you take in an input of a floating number in MIPS? I have tried using:
li.s $f0, 6
syscall
But I just keep getting that there is an error with the line.
回答1:
li $v0, 6
syscall
//the float value that is read will be in $f0 register
回答2:
you cannot load-immediate a number into float registers
li $t0, 6 # load-immediate 6 into an int register
mtc1 $t0, $f0 # copies the bit pattern "...110". It is NOT 6.0!!
cvt.s.w. $f12, $f0 # convert word to (single) float. $f12 now contains 6.0
回答3:
You can also place the float in the data segment:
.data
pi: .float 3.1415926535 # place value of pi in the data segment
.text
lwc1 $f12, pi # load pi from data segment into $f12
li $v0, 2
syscall # print $f12
Output will be:
3.1415927
-- program is finished running
来源:https://stackoverflow.com/questions/46210517/mips-input-floating-point-number