8086的地址总线是20 位,可以传送20位地址,达到1mb的寻址能力,而8086cpu又是16位结构....只能传送16位的地址,寻址能力只有64kb.....(汇编语言-王爽)
为了达到寻址1mb的能力(20位地址线),就采用分段的模式,用两个寄存器表示一个地址,将1mb除以64kb刚好是16,也就是说我们只要十六个 64kb(也就是16位寄存器)就行了,也就是说只要拿另外一个寄存器记录十六个段就行了,但我们都知道段寄存器都是16位的(64kb),如果每个数字 都表示一个段,然后首尾相接再加到一起,算下,就是64k*64k,恩,太大了,远远超出我们的1mb了(我也知道越大越好,但谁叫我们的地址线只有二十 位),办法就是段覆盖,想想扑克牌,我们要用几张牌形成一个两米的长龙,也许只要十六张牌(段)就行了,但现在我们牌多(有一副),还是要完成同样任务, 就把他们相互重叠着展开(相当段覆盖)。。。
覆盖倒是可以,但是不能盖到一起啊(就像一副牌全缩到一起,长度也就一张牌长),所以相邻两个段至少也得相隔16字节,(16*64KB(段)=1mb),也就是为什么段起始要是十六的倍数