記憶體的管理與規劃
CPU內部的記憶空間位便於管理必須加以編號,通常以16進位數編成00000H~FFFFFH,這些稱為記憶位址Memory
Address
一般利用作業系統擔負管理記憶體的任務,而記憶體的管理方法,有一種稱為分節記憶Segmentation的方法。此方法乃是利用作業系統建立一個邏輯性的記憶空間謂相對位址,以所謂記憶窗模式,窗口大小為(節內位址)64K(0-65535),表示一次只可以看到64k的記憶位址區間,此區間稱為節區Segment,更改節區指位器的位址,才可以看到連帶相關64K的記憶體位址資料。
此種管理記憶體的方法,將記憶位址由節位址與節內位址組成。CPU內部以暫存器register用於存放各節區的起始位址,此稱為節區指位器Segment
Pointer,固定指向節區的開頭。而節內位址乃是以節區指位器為參考點(起算點),又稱為偏移值Offset。此種記憶體表示方法稱為相對位址表示法。故資料在記憶體中的實際(絕對)位址便以如下公式表示:
絕對記憶位址=節區指位器值+節內位址
吾人可以容易由相對位址計算絕對位址,但是由絕對位址計算相對位址時,卻因為節區指位器的位址無法確定,連帶節內位址亦無法確定,一旦節區指位器改變起始位址,則節內位址亦一併改變,遂導致無法計算相對位址。此為其困難點
節區指位器
程式載入電腦內部時,為執行上的需要,必須將記憶空間分為程式區,資料區以及堆疊區。程式區用來存放程式的程式碼;資料區存放程式所處理的資料,堆疊區作為程式中斷或呼叫副程式時資料及返回位址的暫存區。遂有以下各種節區指位器:
CS |
Code sgement pointer |
指向程式節區 |
DS |
Data segment pointer |
指向資料節區 |
ES |
Extra segment pointer |
指向輔助節區 |
SS |
Stack segment pointer |
指向堆疊節區 |
其中DS與ES有部分區域相重疊
|