2013-05-18 23 views
5

Chcę podzielić dwie wartości, które są w rejestrach $tn.Konwertuj Integer na Double w MIPS

Muszę podzielić te dwie wartości, aby uzyskać podwójny wynik, ale funkcja div zwraca tylko całkowitą część tego działu, czy ktoś może pomóc?

Czy muszę przekonwertować $t1 i $t2 na $f0 i $f2?

Jak to zrobić?

li $t1,2 
li $t2,5 

div $f0,$t2,$t1 

To daje mi błąd, ponieważ oczekuje wartości $tn nie $fn wartość ...

Odpowiedz

9

Musisz się przenieść i przekonwertować liczbę całkowitą przechowywane w ogólnym zastosowaniu zarejestrować do zmiennoprzecinkowych podwójnej lub rejestru.

Zakładając, że numer jest zapisany w $a1, przekonwertować na podwójnej pary ($f12, $f13) trzeba wydać:

mtc1.d $a1, $f12 
    cvt.d.w $f12, $f12 

I przekonwertować go do pływaka pojedynczej precyzji ($f12) wy mieliście zrobić:

mtc1 $a1, $f12 
    cvt.s.w $f12, $f12 
+0

^^ jak zawsze dzięki: D –

+0

odniesienie to pomogło mi to zrozumieć więcej https://www.cs.tcd.ie/~waldroj/itral/spim_ref.html – Brian