Entiendo perfectamente qué significa el sistema de 32 o 64 bits. así que, básicamente, todos los registros o la longitud de la palabra son 32 o 64 bits.Cómo se accede a un solo byte de la memoria mediante la CPU en una memoria de 32 bits y en el procesador de 32 bits
Por simplicidad, tomemos un sistema de 32 bits y digamos que estoy escribiendo un programa en C. si declaro un tipo int diga "int a = 5;" luego, una ubicación de memoria de una longitud de palabra se reserva para var a. así que cuando quiera acceder a él, puedo hacerlo usando la dirección de palabra para esa ubicación de memoria.
Pero digo que tengo 4 caracteres "char a, b, c, d;" dado que es un byte, cada uno de ellos se coloca en una palabra, entonces, ¿qué hago si quiero acceder solo a char b? (diciendo que la memoria es direccionable por byte) ahora diga b es el tercer byte en la palabra ... . Entonces, ¿cómo llega al autobús? ¿No está el 3er byte conectado a la línea 17 a 24 en el bus? entonces, ¿qué pasa con las otras 24 líneas cuando solo se accede a b?
Compruebe el idioma de la máquina, el lenguaje de ensamblaje, para esa CPU en particular, especialmente las partes sobre direccionamiento de memoria y registros de la CPU. – theglauber
@deepak, en las plataformas de 32 bits que admiten el direccionamiento de bytes, es posible escribir un solo byte en la memoria sin los otros tres bytes escritos (de acuerdo con las señales de habilitación de bytes desactivadas). –
@EricZ, ¿qué pasaría si el byte que quiero es el segundo byte (conteo inicial desde cero) en la memoria? generalmente cuando accedo a una palabra de la memoria, el 2do byte cae entre las posiciones de bit 23 - 16 del registro. Pero en este caso tendrá que aterrizar en la posición 7 - 0. Esto me confunde porque pensé que el bit 0 de la memoria estaba conectado para aterrizar en el bit 0 del registro, y el bit 31 en el bit 31. Pensé que era todo en el circuito, entonces ¿cómo podría un bit que se supone que aterriza en la posición de bit 16, aterrizar en la posición 0 durante el acceso de byte? – deepak