首页 理论教育 逻辑地址和物理地址

逻辑地址和物理地址

时间:2022-02-28 理论教育 版权反馈
【摘要】:在整个1M地址空间中,存储单元的物理地址等于段起始地址加上偏移。 某个数据存放在DS=8561H和DI=3742H的数据段的存储单元中,此单元的物理地址为:通过位移和算术加可以很容易地实现物理地址的计算。指令中不使用物理地址,而是使用逻辑地址,由8086/8088CPU中的总线接口单元BIU按需要根据段值和偏移自动形成20位物理地址。

1.7.3 逻辑地址和物理地址

由于段的起始地址必须是16的倍数,所以段起始地址有如下形式:

bbbbbbbbbbbbbbbb0000

用16进制可表示成XXXX0。这种20位的段起始地址,可压缩表示成16位的XXXX形式。我们把20位段起始地址的高16位XXXX称为段值。显然,段起始地址等于段值乘16(即左移4位)。

要访问的某一个存储单元总是属于某个段。我们把存储单元的地址与所在段的起始地址的差称为段内偏移,简称为偏移。在—个段内,通过偏移可指定要访问的存储单元,或者说要访问的存储单元可由偏移来指定。在整个1M地址空间中,存储单元的物理地址等于段起始地址加上偏移。

于是,存储单元的逻辑地址由段值和偏移两部分组成,用如下形式表示:

段值:偏移

根据逻辑地址可方便地得到存储单元的物理地址,计算公式如下:

物理地址=段值×16+偏移地址

【例1-21】 某个数据存放在DS=8561H和DI=3742H的数据段的存储单元中,此单元的物理地址为:

85610H+3742H=88D52H。

【例1-22】 某存储单元的逻辑地址为1234H:3456H,所对应的存储单元的物理地址为:

12340H+3456H=15796H。

通过位移和算术加可以很容易地实现物理地址的计算。图1-7是物理地址产生的示意图。由于段可以重叠,所以一个物理地址可用多个逻辑地址表示。图1-8就是这样的一个例子,其中存储单元的物理地址是12345H,标出的两个重叠段的段值分别是1002H和1233H,在对应段内的偏移分别是2325H和0015H。

img20

图1-7 物理地址产生示意图

img21

图1-8 一个物理地址可对应多个逻辑地址

采用段值和偏移构成逻辑地址后,段值由段寄存器给出,偏移可由指令指针IP、堆栈指针SP和其他可作为存储器指针使用的寄存器(SI、DI、BX或BP)给出,偏移还可直接用16位数给出。指令中不使用物理地址,而是使用逻辑地址,由8086/8088CPU中的总线接口单元BIU按需要根据段值和偏移自动形成20位物理地址。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈