物理地址、逻辑地址

这个东西有点绕,但想通了会觉得蛮有趣

物理地址
1、每个内存单元在整个内存空间中具有的惟一的地址。
2、8086/8088CPU有20根地址线,它可以产生20位的地址码,寻址范围为2^20,即1兆字节空间。
注意:了方便书写,在源程序中常用5位十六进制数来表示一个存储单元的地址(8086、8088有20位地址码,也就是20位二进制数,20位二进制也就是5位十六进制数喽!)
逻辑地址
为什么要划分逻辑地址?
将内存划分成多个逻辑段后,就使用逻辑地址来指示存储单元。
使用逻辑地址方便了程序的开发和对存储器进行动态管理。

逻辑地址的组成?

段基地址 偏移地址
16位 16位

16位的段(基)地址————————————————————–决定该逻辑段在内存中的位置
16位的段内地址,也叫相对地址,或偏移地址——————————-决定该存储单元相对段起始单元的距离

段起始单元是什么?

逻辑段的起始单元称为段首
段首的偏移地址=0
这里写图片描述

举例说明:

这里写图片描述

8086/8088的存储器段结构的特点:
1、 每个段最大长度为64K(65536)个字节单元组成。(因为偏移地址16位,2^16=65536)
2.、每个段的起始地址(段基址)必须是一个小节的首址。
每个小节的首地址最低位必为0(16进制数表示)。
形如:00000H 00010H 00020H …… 000F0H

3、逻辑段在物理存储器中可以是邻接的、间隔的、部分重叠的和完全重叠的等4种情况。

逻辑段是把物理内存分段了(为了便于管理),两个逻辑段对应的物理地址可以重合

4、在任一时刻,一个程序只能访问4个当前段中的内容。

4个段分别是代码段、数据段、堆栈段和附加段,称为当前段 。
一图顶千言
这里写图片描述

逻辑地址与物理地址的转换
物理地址=段基地址×16+偏移地址
设某操作数存放在数据段,DS=250AH,数据所在单元的偏移地址=0204H。则该操作数所在单元的物理地址为:
250AH ×16+0204H = 252A4H
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章