物理地址、邏輯地址

這個東西有點繞,但想通了會覺得蠻有趣

物理地址
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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章