我正在做一个小的迷你编译器,同时试图在这里学习一些MIPS。这是我的问题:
MIPS有一个指令li (立即加载),它的工作原理如下
li $5,100这将把100加载到寄存器5中。
然而,我现在需要将浮点数加载到寄存器中,并且正在努力找出一种方法来使it...since li $5,2.5不起作用。
有人有什么建议吗?
我在C中工作,我想我可以以某种方式获得我正在处理的浮点数的整数表示(即,浮点数的二进制表示==整数二进制表示),然后将“整数”加载到寄存器中,并从那时起将其视为浮点数。
也许为时已晚,但我现在被困住了。
发布于 2010-04-07 08:41:28
你需要使用浮点寄存器来加载你的浮点数。
而不是:
li $5,2.5尝试:
li.s $f5,2.5看一下在整数和浮点寄存器之间移动的mfc1和mtc1指令。
发布于 2012-10-16 21:41:03
MARS 似乎没有任何将浮点立即值加载到浮点寄存器的指令/伪指令。相反,您需要将浮点值放入内存并从内存加载寄存器:
.data
fp1: .double 2.5
fp2: .double -0.75
.text
l.d $f0, fp1
l.d $f2, fp2https://stackoverflow.com/questions/2589233
复制相似问题