可能我不知道如何在浮点中使用指令。我想读一个浮点数,进行一些操作并再次将结果打印为浮点数,但是SPIM在这里给出了一个错误"null"
。我想每当使用浮点指令时,我必须给两个mov.s $f0, $v0
寄存器,对吧?但是,如何复制$f
中的内容,因为系统调用需要?
这是我的代码
$v0
答案 0 :(得分:1)
系统调用6(read_float
)返回$f0
中的值,而不是$v0
。因此,您mov.s $f0, $v0
已经具有$f0
中的值。
mtc1 $v0,$f0 # Move the value of $v0 into $f0
cvt.d.w $f12,$f0 # Convert the integer value in $f0 into a double-precision
# floating-point value and place the result in $f12
是不必要的
如果你做在GPR中有一个整数值并希望将其转换为浮点并将其放在一个浮点寄存器中,那么你可以按如下方式进行:
cvt
向程序员咨询 MIPS32™架构
第二卷:MIPS32™指令集如果您想了解有关mtc1
和.item {
display:flex;
flex-flow: row wrap;
}
指令的更多信息。