汇编8086的问题

8086CPU的地址总路线宽度为20位,即可以定位2^20个内存单元,则内存地址空间大小为1M,这一句话怎么理解呀?

每一位地址线上可以传输两种信号0或1。

假如地址线只有1位,则输出的信号,要么是0,要么是1。是0的话,可以定位1个单元,是1的话,可以定位另一个单元,故地址线宽度为1位,可以定位2^1=2个内存单元。

假如地址线有2位,那么输出信号,可以有4种组合,即00,01,10,11,可以定位4个内存单元,即2^2个内存单元,则内存地址空间大小为4。

假设地址线有3位,那么输出信号,可以有8种组合,即000,001,010,011,100,101,110,111,可以定位8个内存单元,即2^3个内存单元,则内存地址空间大小为8。

同理,
8086CPU的地址总路线宽度为20位,即可以定位2^20个内存单元,则内存地址空间大小为1048576(=2的20次方)。

由于2^10 = 1024 = 1K
2^20 = 1024 * 1024= 2^10K = 1M (单位换算问题)

所以8086CPU的地址总路线宽度为20位,即可以定位2^20个内存单元,则内存地址空间大小为1048576(=2的20次方)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-09-22
地址总线的宽度的意义就在于每次传送数据的位数。也就是说一次向CPU可以传达一个20位的一个二进制数字。在实模式下,地址是从0开始对内存进行编址的。不管你有多大的内存,如果将这个内存地址一次传到CPU时,只能传送20位,所以最大的寻址空间也只能是对这二十位进行编制。20位的最大的数无非是20位个1,从0开始编址,当然,这时能编址的单元只是2^20,也就是1M个地址空间,再说白一定就是1*1024*1024个内存单元,称之为1M空间。

这种情况一直到80286保护模式下的寻址方式的出现。这里只是实模式的寻址。至于保护模式的寻址及虚拟寻址,可以参看一些书,保护模式寻址有一个精度位,由于段页内存划分出现,寻址能力不也大了很多!
第2个回答  2008-09-21
1KB = 2^10B = 1024B
1MB = 2^20B = 104856B
就是个换算问题,是技术上的定义。
第3个回答  2008-09-22
计算机中,定义:2^20=1M,就是给每个地址一个编号(门牌号),一共可以给1M的地址编号,所以可以定义1M个房间,门牌号分别为0,1,2,3....1M,故内存地址空间大小为1M。
相似回答