2013-05-18 16 views
5

Desidero dividere due valori nei registri $tn.Converti numero intero in doppio in MIPS

Devo dividere questi due valori per ottenere un doppio risultato ma la funzione div restituisce solo la parte intera di tale divisione può aiutare qualcuno?

Devo convertire $t1 e $t2 a $f0 e $f2?

Come faccio?

li $t1,2 
li $t2,5 

div $f0,$t2,$t1 

Questo mi dà un errore perché si aspetta un valore $tn non un $fn valore ...

risposta

9

Dovete spostare e convertire il numero intero memorizzato in un General Purpose Register a virgola mobile o doppio registro.

Assumendo che il numero è memorizzato nella $a1, Per convertire ad una doppia coppia ($f12, $f13) si deve lanciare:

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

E per convertirlo in un galleggiante precisione singola ($f12) che ci si fare:

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

^^ come sempre grazie: D –

+0

questo riferimento mi ha aiutato a capire questo più https://www.cs.tcd.ie/~waldroj/itral/spim_ref.html – Brian