80X86 保護模式

2021-04-16 09:21:30 字數 2032 閱讀 7741

保護模式定義:

保護」:用硬體對每個任務使用的記憶體空間進行保護,阻

止其他任務的非法訪問。 特點如下:

a 採用虛擬儲存管理,啟用分段和分頁機制。允許關閉分頁機制

b 段內偏移位址

32位,每個段最大232

b=4gb

,每個程式最多可以使用

16k個段,理論上的虛擬位址空間為

4gb×

16k=64tb

c 採用

32位位址暫存器,如

ebx,

esi,

eip,

esp等。

d  4

個特權級:0

,1,2,3。

0級具有最高的特權,可以執行所有指令,建立和維護各種

**,管理整個系統,供作業系統程序使用 3

級最低,

3級任務只能訪問作業系統分配給它的記憶體區間,

不能執行

「特權指令

」,訪問

io裝置的許可權也受到限制。

供使用者程式使用。

保護模式下的定址方式:

「分段管理」:

•邏輯位址仍然採用

「段:偏移位址

」的形式。 •

邏輯位址通過分段管理機構轉換為

32位的

「線性位址」。

•16位段暫存器內存放的不再是

20位段起始位址的高

16位,而

是這個段的乙個編號,稱為

「段選擇符

(segment selector)」

。 •使用這個

「段選擇符」查詢

「段描述符表

(segment descriptor 

table)」

,得到這個段的

32位起始位址,加上

32 位的偏移地

址,得到這個儲存單元的32位

「線性位址」。

「分頁管理」:

•32位線性位址通過分頁管理機構轉換為32位

/36位的實體地址 •

所有的儲存器以

4kb為單位劃分成「頁

(page)」

。 •線性位址被劃分成「頁號

」和「頁內位址

」 兩部分,根據頁號查詢「頁表

」 ,得到這個頁在記憶體真實的起始位址,加上頁內位址,

得到該儲存單元的實體地址。 •

如果通過查表發現該頁還在硬碟中,則還要首先啟用「換頁

」機制,把這個頁調入記憶體。

分段機構的三張段描述符表

段描述符表

由若干個段描述符組成,每個段描述符記錄乙個段的相關資訊,如這個段的起始位址,段的長度,段的屬性等

全域性段描述符表

(global descriptor table,

gdt)整個計算機內只有一張,存放作業系統使用的各種段的資訊。

區域性段描述符表

(local descriptor table,

ldt)每個任務都有一張區域性段描述符表,記錄這個任務使用的段的資訊。

中斷描述符表

(interrupt descriptor table,

idt)記錄

「中斷服務程式

」的位置資訊。

控制暫存器

控  制

暫存器crx

bit31

bit30—bit12

bit11—bit5

bit4

bit3

bit2

bit1

bit0

cr0pg

0000000000000000

etts

emmp

pecr1

保留cr2

頁故障線性位址

cr3頁目錄表物理頁碼

000000000000

80x86保護模式

請教 1 何為實位址方式?2 何為保護方式?3 二者的區別是什麼?能否詳細 4 什麼是虛擬位址?5 什麼是對映?6 何為浮點數?回答 如果你想詳細地搞清以上問題,建議你去閱讀有關386 486或pentium彙編的書 8086 8088的彙編的書一般沒有保護方式 虛擬位址 浮點數等概念 一般都會有專...

80x86的保護模式

通過對程式使用的儲存區採用分段 分頁的儲存管理機制,達到分組使用 互不干擾的保護目的。能為每個任務提供一台虛擬處理器,使每個任務單獨執行,快速切換。所以,記憶體位址由段基位址 偏移位址構成。描述符表分為兩類 1.gdt是全域性描述符表,主要存放作業系統和各任務公用的描述符,也存放ldt描述符。2.l...

80x86的保護虛位址模式

在保護模式下,80x86支援虛擬儲存器的功能,乙個任務可執行多達16kb個段,每個段最大可為4gb,故乙個任務最大可達64t的虛擬位址。保護模式下執行的程式分為4個特權等級 0 1 2 3,作業系統核心執行在最高特權等級0 使用者程式執行在最低特權等級3。80x86中有完善的特權檢查機制,既能實現資...