8086CPU 有20位地址总线,可以传送20位地址,达到1MB寻址能力,请问这句话怎么理解?
问题1:这里的寻址能力1MB是怎么算出来的?问题2:20根地址总线是组合起来的20位数据就是物理地址??还是1根总线的数据就表示一个物理地址??如果是前者的话,问题1的算...
问题1:这里的寻址能力1MB是怎么算出来的?
问题2:20根地址总线是组合起来的20位数据就是物理地址??还是1根总线的数据就表示一个物理地址??如果是前者的话,问题1的算出来不就是:2^20bit/8=131072字节吗?也就是131072/1024K不等于1M啊?? 我这样理解哪里出错了?! 展开
问题2:20根地址总线是组合起来的20位数据就是物理地址??还是1根总线的数据就表示一个物理地址??如果是前者的话,问题1的算出来不就是:2^20bit/8=131072字节吗?也就是131072/1024K不等于1M啊?? 我这样理解哪里出错了?! 展开
2个回答
2012-05-02
展开全部
2的20次方是1M。大叔。这个都不会啊.囧。
2^20=1048576=(1048576/1024=1024K)=1M
电脑是二进制的。地址总线只是表示地址。地址内部表示为xxxxxxxxxxxxxxxxxx。可以表述1M个地址。
至于每个地址是8bit(一个字节B),还是16bit(双字节),还是32bit(四字节,目前常用),那根据处理器的,8086好像是8位数据,容量最大1MB。
2^20=1048576=(1048576/1024=1024K)=1M
电脑是二进制的。地址总线只是表示地址。地址内部表示为xxxxxxxxxxxxxxxxxx。可以表述1M个地址。
至于每个地址是8bit(一个字节B),还是16bit(双字节),还是32bit(四字节,目前常用),那根据处理器的,8086好像是8位数据,容量最大1MB。
追问
- -!我不是大叔,我是待毕业大学生,因为不是这个专业,很多基础理论知识不是很懂
其实我是不明白
2^20=1048576 这里的单位为什么是字节,而不是bit??
因为从2^20=1048576=(1048576/1024=1024K)=1M这里告诉了我2^20是字节
追答
需要的话,单独pm偶。我也是业余的。
首先说明几个,K是kilo,日常的话等于一千,计算机里等于1024,差不多。
M是million,百万,计算机里等于1024*1024,比百万稍多点,整体差不多。
8bit等于一个字节Byte(计算机简称1个B)。计算机容量我们说他多少K,多少M,多少G,多少T。都是KB、MB....TB。约定俗成。(计算机通信领域,默认是1bit,有其特殊历史原因和技术因素)
我举个例子吧,地址是二进制系统的门牌号,形如01001000011110011011(二十位长度)。长度是二十位,就叫他二十位地址总线。这一点理解了吧。
因为是二十位,从0000000000000000000到,11111111111111111111总共1M个可能性。也就是可以表示1M个地址(门牌)。
而每个门牌可以代表1bit或者8bit(一字节),有些处理器处理器单门牌可以双字节都行。一般是一字节。
因为如果一个地址(门牌)只表示1bit的话,那三十二位地址都只能表示512GB地址,太小了,不划算。
要知道,设计处理器时候,地址总线和数据总线横竖交叉,太长的地址总线设计起来很复杂,很乱。
所以处理器起点就是一个字节。实际上,您学汇编的话,发现汇编一个单位也是一个字节。
早期键盘可以打的字符都正好在一个字节以内(包括大小写、数字和控制符)。
计算机都是字节的。
虽然以后发展了。现在最低都32位数据总线了,一次性吞吐4个字节(哪怕这四个字节只有一个有用,其他都是0),但一个地址还是只表示一个字节,保持兼容。
只是所有涉及的地址都是4的倍数,呵呵。
再举个偏题的例子
我们32位xp最大只支持4G内存(扣除显存和bios预留,只剩下2.xxG)就是因为32位系统的地址只能2的32次方,也就是4GB,所以悲剧了,解决的方案只有升级为64位系统(处理器现在基本都64位兼容了).
写的比较乱,简单说,您如果对硬件有兴趣,硬件上都是以字节为单位的。bit只应用于通讯领域。通讯是连续的涉及冗余啊,校验位啊,完全可以是任何bit,例如9bit一个tcp加密包... ...
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询