鱼C论坛

 找回密码
 立即注册
查看: 1600|回复: 3

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

[复制链接]
发表于 2014-4-3 16:45:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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)



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-3 17:25:24 | 显示全部楼层
地址总线的宽度是20,那么它能确定2的20次个地址,而在存储器中的基本单位是byte

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

8086CPu所有的内部寄存器、内部及外部数据总线都是16位宽,因此是完全的16位微处理器。20位外部地址总线,因此物理寻址空间为1MiB (即220 = 1,048,576).由于内部寄存器都是16位,对1M地址空间寻址时采取了段寻址方式。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-3 17:38:03 | 显示全部楼层

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

使用道具 举报

发表于 2014-4-3 18:02:25 | 显示全部楼层
tiger_lu 发表于 2014-4-3 17:38
谢谢,我终于明白啦。
2^20是寻址范围,那cpu可以寻找到 0  ~   2^20-1  地址
但是内存上一个地址(那一 ...

不客气
我学的时候也和你一样犯了同样的迷糊,也觉得应该除了8再去除1024
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 01:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表