我不能在MARS中使用li.s。我是MIPS编程的新手,我试图不使用任何协处理器。为什么我不能使用li.s是MARS的程序?如果有人能带领我走向新的方向,那将是非常有帮助的!
答案 0 :(得分:2)
这是一个伪指令,可能没有在火星中实现。您可以使用li(ori)和mtc1的序列。
这会将值1.234加载到$ fp1并在MARS中运行:
li $t1,0x3f9df3b6
mtc1 $t1,$f1
可以使用http://babbage.cs.qc.edu/IEEE-754/Decimal.html或使用简单程序找到十六进制或整数值(在Fortran中,在C中使用指针转换类似):
read(*,*) a
i=transfer(a,i)
write(*,*) i
end
答案 1 :(得分:0)
您可以使用伪指令l.s和存储在数据段中的常量来实现与pseudoinstruction li.s相同的效果:
l.s $f1, fpconst
.data 0x1000
fpconst:
.float 1.2345
那将使用协处理器寄存器$ f1来存储浮点常数。
您也可以使用lw $f1, fpconst
而不是l.s