【摘要】:根据需要把1M字节地址空间划分成若干逻辑段。每个逻辑段必须满足如下两个条件:第一,逻辑段的开始地址必须是16的倍数;第二,逻辑段的最大长度为64K。第一个条件与段寄存器长16位有关,第二个条件与指针寄存器长16位相关。逻辑段与逻辑段可以相连,也可以不相连,还可以部分重叠。图1-6给出了若干逻辑段的划分情况。
1.7.2 存储器地址的分段
8086/8088CPU有20根地址线,可直接寻址的物理地址空间为1M(=220)字节。系统存储器由以字节为单位的存储单元组成,存储单元的物理地址长20位,范围是00000H~FFFFFH。尽管8086/8088内部的ALU每次最多进行16位运算,存放存储单元地址偏移的指针寄存器(如SP、BP、SI、DI和BX)都是16位,但8086/8088通过对存储器分段和使用段寄存器的方法有效地实现了寻址1M字节物理空间。
根据需要把1M字节地址空间划分成若干逻辑段。每个逻辑段必须满足如下两个条件:第一,逻辑段的开始地址必须是16的倍数;第二,逻辑段的最大长度为64K。按照这两个条件,1M字节地址空间最多可划分成64K个逻辑段,最少也要划分成16个逻辑段。第一个条件与段寄存器长16位有关,第二个条件与指针寄存器长16位相关。
逻辑段与逻辑段可以相连,也可以不相连,还可以部分重叠。图1-6给出了若干逻辑段的划分情况。在图1-6中,段B与段C部分重叠,段E与段D相连。
这种存储器分段的方法不仅有利于实现寻址1M字节空间,而且也十分有利于对1M字节存储空间的管理。对实现程序的重定位和浮动,对实现代码数据的隔离,对充分利用存储空间,这种方法都有益。
图1-6 逻辑段的划分
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。