Perdónenme si cree que esto ha sido respondido en numerosas ocasiones, pero necesito respuestas a las siguientes consultas.Alineación de CPU y datos
¿Por qué los datos deben estar alineados (en los límites de 4 byte/8 byte/2 byte)? Aquí mi duda es cuando la CPU tiene líneas de dirección Ax Ax-1 Ax-2 ... A2 A1 A0, entonces es bastante posible dirigir las ubicaciones de memoria secuencialmente. Entonces, ¿por qué existe la necesidad de alinear los datos en límites específicos?
¿Cómo encontrar los requisitos de alineación cuando estoy compilando mi código y generando el ejecutable?
Si, por ejemplo, la alineación de datos es un límite de 4 bytes, ¿significa eso que cada byte consecutivo se encuentra en los desplazamientos del módulo 4? Mi duda es si los datos están alineados a 4 bytes ¿eso significa que si un byte está en 1004, entonces el siguiente byte está en 1008 (o en 1005)?
Sus comentarios son bienvenidos.
¡Gracias de antemano! /MS
hola theatrus, aquí está mi duda otra vez! ¿Por qué se eliminan las 2 líneas de dirección inferiores? Gracias a esta configuración, solo puedo acceder a los datos de las direcciones 0, 4, 8 ... etc. Entonces, ¿cómo se manejan las manipulaciones de Byte en tal situación? ¿Mencionó que no hay restricción de alineación para un solo byte de datos, cómo se logra cuando a las 2 líneas de direcciones inferiores no les importa? ¡Gracias por su respuesta! –
Lo que más me preocupa es por qué a las líneas de direcciones no les importa cuándo puede haber una manipulación de byte prevista en mi código (y hacer todo el camino para hacer lo mismo ...)? –