¿Qué hace exactamente esta instrucción? Sé que trata de alinear los datos con un múltiplo de un número específico, pero ¿por qué tendrías que hacer esto? ¿Hay alguna instrucción equivalente en otros ensambladores?'alinear' instrucción en MIPS
Respuesta
Normalmente alinea los datos para obtener un mejor rendimiento. Para la mayoría de los procesadores, el acceso a memoria tiene alguna penalización cuando no se accede a límites de bytes específicos. Para otros ensambladores, a menudo hay algún tipo de pseudo-op.align
para esto. La mayoría de los compiladores también alinean sus estructuras de datos (aunque puede deshabilitarlo para depuración).
Ver también Wikipedia entry.
Tenga en cuenta que los sistemas MIPS no emulados pueden incluso bloquearse si intenta acceder a las celdas de memoria desalineadas (consulte here y here).
¿Existe una instrucción equivalente en otros ensambladores?
MASM tiene una directiva Align: http://msdn.microsoft.com/en-us/library/dwa9fwef(VS.80).aspx
se alinea todo a la enésima potencia de dos. No es una instrucción, es una directiva que se traduce en instrucciones
En cuanto a su uso, por exampe:
instrucciones MIPS32 son siempre 32 bits de longitud. Entonces, cada instrucción debe comenzar en un límite de palabras. Agregar una directiva .align antes de que comience el código, alinea las cosas a 32 bits. Esto tiene muchos beneficios, incluyendo que solo se necesita 1 acceso a la memoria para la recuperación de la instrucción, y que probablemente sea beneficioso en la caché de instrucciones.
¿Qué tal almacenar doble flotador en la pila? Necesita alineación de 8 bytes ¿verdad? –
Sí, los dobles se alinean con 64 bits – Tom
- 1. MIPS "la" pseudo instrucción
- 2. Instrucción de salto en la Asamblea MIPS
- 3. MIPS rango de instrucción de salto
- 4. ¿Qué significa rt en el formato de instrucción MIPS?
- 5. MIPS architecture syscall instruction
- 6. valor absoluto en MIPS
- 7. Recursividad en MIPS
- 8. MIPS Decompiler
- 9. las funciones (procedimientos) en MIPS
- 10. MIPS - ¿Es importante?
- 11. MIPS $ gp registro
- 12. MIPS restricciones de memoria?
- 13. MIPS - confusión JAL: $ ra = PC + 4 o PC + 8?
- 14. Crear (y acceder) una matriz en MIPS
- 15. Comparando 0x00000000 con 0xFFFFFFFF en MIPS
- 16. Pascal gratuito para Android en MIPS
- 17. Invertir una cadena en el conjunto MIPS
- 18. ¿Cómo obtener bit LSB en MIPS?
- 19. Prevención de ejecución de memoria MIPS
- 20. C a la traducción MIPS
- 21. MIPS palabra de carga sintaxis
- 22. Cálculo de Mips para software integrado
- 23. Latex AMS alinear/Alinear múltiples "=", demasiado espacio
- 24. ¿Por qué firmamos Extender en instrucción de palabra de carga?
- 25. MIPS Pipeline Forwarding (riesgo doble de datos)
- 26. MIPS (o SPIM): carga de números de punto flotante
- 27. Convertir C a MIPS - Matrices anidadas
- 28. MIPS de punto flotante: SWC1 vs S.S
- 29. Lectura de un entero en una variable local en MIPS
- 30. Conjunto MIPS para un bucle for simple
Gracias por las aclaraciones adicionales en los enlaces externos! –