本文写的很详细,搞了很久才理解这块的东西,如有错误请指出.
为了方便理解,先补充一些知识
- 8位十六进制=32位二进制
- 字地址=存储字地址=存储单元地址
- 1字节=8位二进制
- 字(word)是一次存取,加工,传送的数据长度,字长是每个字所包含的位数,32位字长=4个字节
- 32(字长)/8(bit)=4(字节) 因此1个字=4个字节
大端和小端是指数据在内存中的存储模式,它由 CPU 决定:
1) 大端模式(Big-endian)是指将数据的低位(比如 1234 中的 34 就是低位)放在内存的高地址上,而数据的高位(比如 1234 中的 12 就是高位)放在内存的低地址上.
2) 小端模式(Little-endian)是指将数据的低位放在内存的低地址上,而数据的高位放在内存的高地址上。这种存储模式将地址的高低和数据的大小结合起来,高地址存放数值较大的部分,低地址存放数值较小的部分,这和我们的思维习惯是一致,比较容易理解。

- 12345678H是8位十六进制(也就是8个16进制数),左边大端方式12所在的位置是低地址,1个十六进制数转化为二进制占4位,因为一个字节是8位二进制,因此一个格子里放2个十六进制数.
- 列 字地址 0 4 8 ,实际是因为1个字=4个字节, 也就是0123(0)4567(4)891011(8)
对16个格子进行编号,第一行第一个是0, 就像二维数组那样. 0就是最低位
地址线和按字节寻址/按字寻址

- 总线中的每根“线”,一次只能传输0/1,所以一根线能传输1位(bit)的数据,两根线呢,能传输2位(bit)。但是,需要注意的是1bit能表达0和1,所以1bit能表达2个数,所以,3bit能表达的数其实是2^3个,也就是8。
- 地址线24根,按字节寻址范围为2^24 =16M;
若字长32位,则一个字有4个字节,所以要留2根地址线指出该字中的哪个字节[00,01,10,11],即寻址范围为 2^24−2=4M;
若字长16位,则一个字有2个字节,所以要留1根地址线指出该字中的哪个字节[0,1],即寻址范围为2^24−1=8M;
本文详细介绍了计算机主存中存储单元地址的分配方式,重点讲解了大端和小端模式的概念,以及如何根据字地址进行按字节或按字寻址。通过实例解释了地址线与寻址范围的关系,并讨论了不同字长对寻址的影响。
1万+

被折叠的 条评论
为什么被折叠?



