分享

举例说明8086中20位物理地址生成过程

 沁源书斋 2018-10-07
现代内存容量太大比如256M,而计算机的数据线往往只有16位、32位或者64位(目前应用很少),他们所能他寻找到的地址空间最大不过是2^16(64K)、2^32(4M)或者2^64(16T),所以内存通常使用段页式存储.也就是将内存空间分成若干段,或者若干页,每段大小是数据线所能访问到的最大空间.在内存中的实际地址就是所谓的“物理地址”,而逻辑地址就是逻辑段管理内存而形成的.
比如在8086系统中,8086对外连接使用一个20位的线性地址唯一确定一个存储单元,也就是说:对于每个存储器单元都有的一个唯一的20位地址,我们称为该单元的物理地址或绝对地址.
8086在内部结构中和程序设计时采用逻辑段管理内存,就形成了逻辑地址.它的表达形式为“段基地址 :偏移地址”.
逻辑地址=段基地址 :偏移地址
段基地址(Segment)——逻辑段在主存中的起始位置,简称段地址.由于8086规定段开始于模16地址,所以省略低4位0不显式表达,段基地址就可以用16位数据表示.
偏移地址(Offset)——主存单元距离段起始位置的偏移量(Displacement).由于限定每段不超过64KB,所以偏移地址也可以用16位数据表示.
这样同一个存储单元就即有物理地址,又有逻辑地址.但是请注意,物理地址是外部连接使用的、唯一的;而逻辑地址是内部和编程使用的、并不唯一.
物理地址和逻辑地址可以互相转换.
将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址.这里左移的4位是二进制位;如果用十六进制表达地址就是左移一位(不知道为什么,复习数制内容吧!还不知道为什么,看疑难解答吧!).左移4位还可以表达为乘以16,即:段地址×16+偏移地址.
同一个物理地址可以对应多个逻辑地址形式.所以物理地址转换为逻辑地址,需要明确段基地址或偏移地址,然后同上原则确定另一个地址.
逻辑地址 1460H :0100H 1380H :0F00H
物理地址 14700H
于是,对于主存14700H单元,我们可以描述为在1460H(或1380H)段的100H(或F00H)单元,或者说主存1460H :0100H(或1380H :0F00H)单元.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多