View Full Version : Conversione Word in Double
Come posso convertire un intero in un double? Sto lavorando in assembly e non mi è permesso usare l'istruzione che lo fa direttamente, posso soltanto utilizzare quella che converte un intero in un floating point a singola precisione (32 bit). Considerate che nell'architettura MIPS (quella che utilizzo) vengono usati due registri adiacenti per memorizzare un double (quindi ad esempio $f20 e $f22).
Se l'intero è piccolo allora posso caricare il registro più basso con 0 e quello più alto con il valore floating point?
cdimauro
24-01-2016, 08:54
Se l'intero è piccolo, puoi usare l'istruzione che converte da intero a FP a singola precisione.
Altrimenti sei costretto a realizzare una routine di conversione da int64 a double. Non è complicata, ma in assembly, e specialmente con l'architettura MIPS (che è abbastanza povera di istruzioni), ti ci vorrà un po'.
Se l'intero è piccolo, puoi usare l'istruzione che converte da intero a FP a singola precisione.
Come pensavo, ma visto che i double utilizzano due registri allora dovrò riempire quello più basso con 0 no?
cdimauro
24-01-2016, 19:25
Non so come funziona l'architettura MIPS da questo punto di vista.
In genere i registri di un'FPU hanno una dimensione fissa, e consentono di memorizzare single, double, come pure interi. Ciò che accade con altre architetture è che un valore viene caricato secondo uno dei tipi di cui prima, e convertito nel tipo a precisione massima, che in genere è il double (extended per x87).
Ma se nell'architettura MIPS esiste un'istruzione per convertire da intero a single, allora può darsi che ciò che ho descritto non valga.
Devi vedere un po' come funziona.
In ogni caso ti avviso prima che mettere a 0 l'altro registro non funzionerebbe, perché la codifica interna di single e double è diversa.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.