基本寄存器
在了解實模式與保護模式差別之前,先介紹一下幾個基本的寄存器
- 通用寄存器
寄存器組中有8個32位寄存器,屬于CPU内的寄存器,也稱通用寄存器,按照用途可以分為資料寄存器組和訓示器變址寄存器
-
資料寄存器組:EAX、EBX、ECX、EDX
一般用來儲存操作數,運算結果,或作為訓示器,變址寄存器等
-
訓示器變址寄存器組:ESI、EDI、ESP、EBP
一般用來存放操作數的偏移位址、用作訓示器或變址寄存器
- 段寄存器
在保護模式下,從邏輯位址到實體位址的映射過程中要涉及到分段部件和分頁部件,分段部件的作用是将二維的邏輯位址轉換為一維的線性位址,在分段部件中有6個十六位的段寄存器,如下圖
- 指令訓示器:IP
- 标志寄存器 :Flags
- 控制寄存器:CR0、CR1、CR2、CR3
-
CR0寄存器:
CR0的低5位組成機器狀态字(MSW)
PE: 0——實模式;1——保護模式
MP: 1(系統有數學協處理器時)
EM: 0(仿真協處理器)
TS: 任務切換,切換任務時自動設定
ET: 1(協處理器的類型)
CR0中的PG位設定為1,表示允許分頁
-
CR1寄存器
保留,為将來CPU做準備
-
CR2寄存器
如果發生缺頁,引發缺頁的線性位址儲存在CR2中
-
CR3寄存器
CR3包含頁目錄基址:高20位
-
GDTR寄存器
全局描述符表寄存器
存放GDT基址和大小
48位
BASE:32位:GDT在記憶體基位址
LIMIT :16位:GDT界限(即:長度-1).
GDT最大能容納 65536 / 8 = 8192 個 描述符。
-
IDTR寄存器
中斷描述符表寄存器
48位
存放中斷描述符表IDT的基位址和限長
支援 256 個中斷
LIMIT最大為 07FFH 。
IDT中的描述符類型為中斷門。