tiger_lu 发表于 2014-4-3 16:45:49

寻址能力的换算为什么不是这样的呢?

B:byte
b:bit

1B=8b;
1KB=1024B;
1MB=1024KB;
1GB=1024MB;

8086有20位地址总线,可传送20位地址,寻址能力为1M。8086内部为16位结构,它只能传送16位的地址,表现出的寻址能力却只有64K。这里我是很不理解的了:  2^20=1048576      1048576/1024/1024=1 (MB)问:为什么不是这样子呢:      2^20=1048576      1048576/8=131072   (我觉得因为: 1B=8b嘛,而1048576的单位我觉得是b)      131072/1024/1024=0.125 (MB)

福禄娃娃 发表于 2014-4-3 17:25:24

地址总线的宽度是20,那么它能确定2的20次个地址,而在存储器中的基本单位是byte

这点书上说的很清楚,在第四页有句话:微机存储器的容量是以字节为最小单位来计算的,那么内存中的一个单位就是一个字节,那确定的就是2的20次个字节--->>>寻址能力就是1MB

8086CPu所有的内部寄存器、内部及外部数据总线都是16位宽,因此是完全的16位微处理器。20位外部地址总线,因此物理寻址空间为1MiB (即220 = 1,048,576).由于内部寄存器都是16位,对1M地址空间寻址时采取了段寻址方式。

tiger_lu 发表于 2014-4-3 17:38:03

福禄娃娃 发表于 2014-4-3 17:25 static/image/common/back.gif
地址总线的宽度是20,那么它能确定2的20次个地址,而在存储器中的基本单位是byte

这点书上说的很清楚,在 ...

谢谢,我终于明白啦。
2^20是寻址范围,那cpu可以寻找到 0~   2^20-1地址
但是内存上一个地址(那一个单元)对应1Byte的容量.因为存储器的容量单位都是Byte嘛
这时候,cpu可以找到存储器上 2^20Byte大小的内容.所以说寻址能力是1MB
然后在这里我反思了一下,我主要错误的根源在于把寻址范围与存储容量混在一起啦,只要明明白白的区分这两个东西,就能理解啦.
最后,再说一声,谢谢您啦.这是我第一次发贴,遇到您这么负责的回答.谢谢哦.

福禄娃娃 发表于 2014-4-3 18:02:25

tiger_lu 发表于 2014-4-3 17:38 static/image/common/back.gif
谢谢,我终于明白啦。
2^20是寻址范围,那cpu可以寻找到 0~   2^20-1地址
但是内存上一个地址(那一 ...

不客气{:5_110:}
我学的时候也和你一样犯了同样的迷糊,也觉得应该除了8再去除1024
页: [1]
查看完整版本: 寻址能力的换算为什么不是这样的呢?