istruzione 'align' su MIPS
-
06-07-2019 - |
Domanda
Cosa fa esattamente questa istruzione? So che tenta di allineare i dati con un multiplo di un numero specifico, ma perché dovresti farlo? Esiste un'istruzione equivalente in altri assemblatori?
Soluzione
Normalmente allinea i dati per ottenere prestazioni migliori. Per la maggior parte dei processori, l'accesso alla memoria ha qualche penalità quando non si accede a limiti di byte specifici. Per altri assemblatori, esiste spesso una sorta di pseudo-op
Vedi anche questa voce di Wikipedia .
Tieni presente che i sistemi MIPS non emulati potrebbero persino arrestarsi in modo anomalo se provi ad accedere a celle di memoria non allineate (vedi qui e qui ).
Altri suggerimenti
Esiste un instruccion equivalente in altri assemblatori?
MASM ha una direttiva Align: http: // msdn.microsoft.com/en-us/library/dwa9fwef(VS.80).aspx
Allinea tutto all'ennesima potenza di due. Non è un'istruzione, è una direttiva che verrà tradotta in istruzioni
Per quanto riguarda il suo utilizzo, per esempio:
Le istruzioni mips32 sono sempre lunghe 32 bit. Quindi ogni istruzione dovrebbe iniziare su un confine di parola. L'aggiunta di una direttiva .align prima dell'inizio del codice, allinea le cose a 32 bit. Ciò ha molti vantaggi, incluso il fatto che richiede solo 1 accesso alla memoria per il recupero dell'istruzione e che probabilmente sarà vantaggioso nella cache dell'istruzione.