實模式與保護模式詳解二 位址對映

2021-09-26 23:49:18 字數 2504 閱讀 5599

8086內部的暫存器都是16位的,但它有20位位址匯流排,可以定址1mb的物理空間

將1mb的儲存器按64kb分段,為什麼按64kb分是因為16位最大的定址範圍就是下216b=64kb。

設定4個段暫存器cs,ds,ss,es(一開始只有四個段暫存器),儲存當前可使用段的段首址,如果各段的段首址都是16的倍數,那麼這些段首址的後四位都為0,則段首址的高16位正好裝入乙個段暫存器中

訪問儲存單元時,cpu根據操作的性質和要求,選擇合適的段暫存器,將裡面的內容左移4位,恢復了段首址原來的值,在於本段中某一待訪問儲存單元的偏移位址相加,則得到該單位的20位實體地址

在實模式下,32cpu與8086一樣,只能定址1mb物理儲存空間並採用分段使用的方式,每段大小不超多64kb,段首位址和段內偏移位址都是用16位表示。這樣1mb的儲存空間最少可分為16段,每段最多64kb。

在某一時刻,cpu可以訪問6個段:**段,資料段,堆疊段,和三個附加資料段,對應的段暫存器分別為cs,ds,ss,es,fs,gs

程式中的每個段大小不定,但不可以超過64kb,具體位置由作業系統決定

分段不是唯一的,一片儲存單元可以屬於乙個段也可以屬於多個段

匯程式設計序中,使用者要將資料段首址置入ds或es,fs和gs中,而cs,ss由系統自動置入

保護模式下建立了四個特權級,0級最高,3級最低,程式中的每個段都有乙個特權級,任何時候,cpu都在同乙個特權級下執行,成為當前特權級。低特權級的程式無法訪問高特權級的資料。

0級:作業系統核心

1級:作業系統服務程式

2級:系統擴充套件程式

3級:應用程式

在保護模式下,每個段的資訊遠遠多於實模式下的位址方式,每個段中的資訊除了段基址外,還有段的大小,段的型別,特權級,是否被執行過,是否能被讀/寫等多種資訊。系統通過8位元組的描述符來儲存這些資訊。

屬性的描述

p:present,是否在記憶體中【1在】

g:段的粒度(段長計量單位)

g=0, 位元組 (段最長1m)

g=1 ,頁面4kb(段最長4g)

dpl: descriptor privilege level 描述符特權級別

s: 描述符的型別

【資料段/**段s=1】

【系統描述符/門描述符s=0】

type : 描述段的訪問型別或型別(與s有關)

【讀,寫,擴充套件,訪問標誌等及其組合】

描述符表是描述符的集合,存放在指定的一段記憶體中,有三種描述符表:區域性描述符表,全域性描述符表和中斷描述符表

區域性描述符表:

每乙個執行程式都有乙個區域性描述符表ldt,包含該程式中各段的描述符,乙個ldt就是乙個系統段,最大可為64kb,存放8192個描述符,由於每個程式有自己的區域性描述符表,用各自的**和資料,所以由此實現程式之間的隔離

全域性描述符表:

只有乙個,最大可謂64kb,存放8192個描述符,包含有系統各任務共享段的描述符,如作業系統所使用的**段,資料段,堆疊段的描述符,還有所有系統段的描述符,如各個任務ldt段的描述符

為了支援多工來回切換,系統中的每乙個任務都建有乙個任務狀態段tss,tss也屬於系統段,該段的描述符也竄訪在全域性描述符表中。tss用於儲存任務掛起時現場的全部暫存器,堆疊,位址對映,鏈結狀態,i/o允許圖首址等完整印象

中斷描述符表:

中斷描述符表idt最大可為2kb,含有指向多大256個中斷服務程式的位置的描述符

保護模式下,段暫存器中不在儲存段的開始位址,而是指出從描述符表中選擇相應段描述符的方式,段暫存器中此時的內容稱作段選擇符(選擇子)

選擇子(selector):

選擇子用於選擇gdt/ldt中的某個描述符。

構成 :

給出段描述符在gdt或ldt中的位置。

ti域(table indicator)

ti=1,從ldt中選擇相應描述符, ti=0,從gdt中選擇描述符。

特權級別域(request privilege level) 請求者最低特權級的限制。 只有請求者特權級高於或等於dpl,對應段才能被存 取,實現段的保護。

根據段暫存器中描述符的引索值、ti、以及rpl值,從描述符表中選擇出描述符,檢查合格後,將描述符送入對應的描述符快取記憶體暫存器,以後對該段的訪問均通過此暫存器進行

當需要對該段的儲存單元進行訪問時,從描述符快取記憶體暫存器中取出段基址,與存放在eip,esp或某一指示器中的偏移位址相加,形成32位線性位址

如果不選擇分頁,線性位址即為實體地址,如果選擇分頁,通過分頁計制,將線性位址對映為實體地址

實模式與保護模式

實模式與保護模式 1.實模式,又叫實位址模式,cpu完全按照8086的實際定址方法訪問從00000h fffffh 1mb大小 的位址範圍的記憶體,在這種模式下,cpu只能做單任務執行 定址公式為 實體地址 左移4位的段位址 偏移位址,即 實體地址是由16位的段位址和16位的段內偏移位址組成的。2....

實模式與保護模式

實模式 即實位址訪問模式 它是intel公司80286及以後的x86 80386,80486和80586等 相容處理器 cpu 的一種操作模式。實模式被特殊定義為20位位址記憶體可訪問空間上,這就意味著它的容量是2的20次冪 1m 的可訪問記憶體空間 物理記憶體和bios rom 軟體可通過這些位址...

實模式與保護模式

1.x86實模式介紹 x86體系的處理器剛開始時只有20根位址線,定址暫存器是16位。我們知道16位的暫存器可以訪問64k的位址空間,如果程式要想訪問大於64k的記憶體,就需要把記憶體分段,每段64k,用段位址 偏移量的方式來訪問,這樣使20根位址線全用上,最大的定址空間就可以到1m位元組,這在當時...