2012-05-22 71 views
1

我的方法是灑在INT寄存器,並加載到浮寄存器,然後轉換轉換INT

li $t0, 2  
sw $t0, -88($fp)  
l.s $f4, -88($fp) 
cvt.d.s $f6, $f4 

我試圖像翻譯表達

float a = 3.0; 
float b = a/2; 

但上述方法並沒有給我一個正確的答案(打印出inf)。

那麼我在哪裏做錯了?有什麼建議麼?

P.S. 2不知道lhs操作數是浮點型,所以我不能加載2.0而不是

回答

1

您正在使用不正確的後綴; .d將以雙字(64位)進行操作。這是你想要的:

li $t0, 2 
sw $t0, -88($fp) 
lwc1 $f4, -88($fp) 
cvt.s.w $f6, $f4 
+0

你是對的; 'l.s $ f4,-88($ fp)'也可以 – manuzhang