Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly MIPS用户输入的浮点值_Assembly_Mips_Qtspim - Fatal编程技术网

Assembly MIPS用户输入的浮点值

Assembly MIPS用户输入的浮点值,assembly,mips,qtspim,Assembly,Mips,Qtspim,我正在尝试编写一个MIPS程序,它接受用户输入的浮点值(以华氏度为单位),并将其转换为摄氏度。但是,我很难找到用户输入的float 我的浮点数前的代码如下: .data getDegreesF: .asciiz "Please enter the degrees in Fahrenheit: " degreesF: .asciiz " degrees Fahrenheit is " degreesC: .asciiz " degrees Celsius." .text .globl ma

我正在尝试编写一个MIPS程序,它接受用户输入的浮点值(以华氏度为单位),并将其转换为摄氏度。但是,我很难找到用户输入的float

我的浮点数前的代码如下:

.data
getDegreesF:  .asciiz "Please enter the degrees in Fahrenheit: "
degreesF:  .asciiz " degrees Fahrenheit is "
degreesC:  .asciiz " degrees Celsius."
.text

.globl main
addi $sp, $sp, -8
sw $s0, 0($sp)
sw $s1, 84($sp)

main:
la $a0, getDegreesF #load getDegreeF sting
li $v0, 4       #syscall to print string
syscall

li $v0, 6       #syscall to read float
syscall

li $v0, 10      #syscall to exit program
syscall
我的理解是,一旦读取浮点值,它就会存储在$f0中。我想把它放在$s0中,但我一直得到一个语法错误。我做错了什么


谢谢。

$f0
是浮点寄存器,
$s0
是整数寄存器。通常在它们之间移动是没有意义的(但这是可能的)。您应该在
$s0
中说明实际问题,以及为什么需要它。另请参见。对不起,目标是获取输入的值,从中减去32,将结果乘以5,将结果除以9,然后将其放入寄存器中进行打印。我的输出应该是“uuu华氏度为uuuu摄氏度”。因此,我想保存用户输入的值以供打印,并保存转换后的值以供打印。我确实尝试移动$f1,$f0,但也出现语法错误。您需要根据需要使用协处理器指令
mov.s
mov.d
。仔细阅读指令集。另外请注意,
$f1
不可用,当用于双精度时,它是
$f0
的后半部分。谢谢。这解决了我的问题。