Che cosa fa esattamente questa istruzione? So che cerca di allineare i dati con un multiplo di un numero specifico, ma perché dovresti farlo? C'è un'istruzione equivalente in altri assemblatori?istruzioni "allinea" su MIPS
risposta
Di solito allinea i dati per ottenere prestazioni migliori. Per la maggior parte dei processori, l'accesso alla memoria ha qualche penalità quando non accede a specifici limiti di byte. Per gli altri assemblatori, spesso esiste una specie di pseudo-op.align
per questo. La maggior parte dei compilatori allinea anche le loro strutture di dati (anche se è possibile disabilitarli a scopo di debug).
Vedere anche questo Wikipedia entry.
Si noti che i sistemi MIPS non emulati potrebbero persino bloccarsi se si tenta di accedere alle celle di memoria non allineate (vedere here e here).
Esiste un instruccion equivalente in altri assemblatori?
MASM ha una direttiva Allinea: http://msdn.microsoft.com/en-us/library/dwa9fwef(VS.80).aspx
si allinea tutto all'ennesima potenza di due. La sua non è un'istruzione, la sua una direttiva che sarà tradotto in istruzioni
Per quanto riguarda il suo utilizzo, per exampe:
istruzioni MIPS32 sono sempre lungo 32 bit. Quindi ogni istruzione dovrebbe iniziare su un confine di parole. Aggiungendo una direttiva .align prima dell'avvio del codice, si allineano le cose a 32 bit. Questo ha molti vantaggi, incluso il fatto che richiede solo 1 accesso alla memoria per il recupero delle istruzioni e che probabilmente sarà vantaggioso nella cache delle istruzioni.
Che ne dici di immagazzinare il doppio galleggiante nello stack? Ha bisogno di un allineamento di 8 byte giusto? –
Sì, raddoppia l'allineamento a 64 bit – Tom
- 1. Cosa significa rt nel formato di istruzioni MIPS?
- 2. Gratuito Pascal per Android su MIPS
- 3. Decompiler MIPS
- 4. Prevenzione esecuzione memoria MIPS
- 5. Compilare C in MIPS
- 6. MIPS virgola mobile: SWC1 vs s.s
- 7. Set di istruzioni MIPS sposta vs aggiungi/aggiungi 0 per la memorizzazione dei valori?
- 8. MIPS $ gp register
- 9. MIPS "la" pseudo instruciton
- 10. maggiore, minore uguale, maggiore uguale MIPS
- 11. Istruzione di salto in Assembly MIPS
- 12. Implementazione del controllo del registro di salto su MIPS a ciclo singolo
- 13. Errore di sintassi nell'assembly MIPS
- 14. Conversione da C a MIPS
- 15. GCC MIPS-32 Convenzioni di chiamata/Definizione frame stack
- 16. layout Android Destra Allinea
- 17. immagini Allinea Jcrop
- 18. Allinea immagini orizzontalmente CSS
- 19. Allinea più tabelle affiancate
- 20. Allinea verticalmente div flottanti
- 21. ipython/Jupyter Allinea Widget
- 22. Compilazione incrociata per router MIPS da x86
- 23. MIPS (o SPIM): caricamento di numeri in virgola mobile
- 24. verticale si allinea a lavorare su inline-block
- 25. Istruzioni su Esci contro Esegui in SAS
- 26. istruzioni pratiche: installazione programmatica su Windows?
- 27. Quante istruzioni ci sono su x86 oggi?
- 28. Assemblaggio MIPS per un ciclo semplice per
- 29. MIPS Pipeline Forwarding (pericolo di dati doppio)
- 30. Converti C in MIPS - Matrici annidate
Grazie per i chiarimenti aggiuntivi nei link esterni! –