CPU y alineación de datos
Disculpe si siente que esto ha sido respondido varias veces, ¡pero necesito respuestas a las siguientes preguntas!
¿Por qué los datos tienen que estar alineados (en límites de 4 bytes / 8 bytes / 2 bytes)? 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 direccionar 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, ¿eso significa que cada byte consecutivo se encuentra en las compensaciones del módulo 4? Mi duda es si los datos están alineados con 4 bytes, ¿eso significa que si un byte está en 1004, entonces el siguiente byte está en 1008 (o en 1005)?