2016-05-25 5 views
0

私はこのコードを持っている:私は、スタック内の0($ FP)にパラメータxの値を入れて、テストにジャンプした後 :MIPSで整数値をMIPSのダブルレジスタにロードする方法は?

void test(int x) 
{ 
    cout<<x; 
    double y=x+4.0; 
    cout<<y; 
} 
void main() 
{ 
    test(7); // call the test in main 
} 

lw $a0,0($fp) // load value of x and print it 
li $v0,1  
syscall 

lw $t1,0($fp) 
sw $t1,0($sp) // put the value of x in stack and point it by $sp 

li.d $f0,4.0 
s.d $f0,4($sp) // put the value 4.0 in stack and point it by $sp 

l.d $f0,0($sp) 
l.d $f2,4($sp) 
add.d $f4,$f0,$f2 

s.d $f4,8($sp) // put the result of add 

l.d $f12,8($sp) // print the value of y 
li $v0,3 
syscall 

私の問題がありますQTSPIMのyの結果は4です....私は二重レジスタに整数値をロードするために問題が...どのように私はこの問題を解決することができますか?

答えて

1

整数値をfpレジスタにロードし、浮動小数点形式に変換する必要があります。あなたは8バイトの読み込み(4バイトの読み込みとそれに続く4バイトの読み込み)を持っているので、おそらくそれを変更してからcvtを実行します:

あなたが言ったように
+0

...それは感謝@クリスドッド – sam

関連する問題