天天看點

實模式與保護模式詳解一:寄存器

基本寄存器

在了解實模式與保護模式差別之前,先介紹一下幾個基本的寄存器

  1. 通用寄存器
寄存器組中有8個32位寄存器,屬于CPU内的寄存器,也稱通用寄存器,按照用途可以分為資料寄存器組和訓示器變址寄存器
  • 資料寄存器組:EAX、EBX、ECX、EDX

    一般用來儲存操作數,運算結果,或作為訓示器,變址寄存器等

  • 訓示器變址寄存器組:ESI、EDI、ESP、EBP

    一般用來存放操作數的偏移位址、用作訓示器或變址寄存器

    實模式與保護模式詳解一:寄存器
  1. 段寄存器
在保護模式下,從邏輯位址到實體位址的映射過程中要涉及到分段部件和分頁部件,分段部件的作用是将二維的邏輯位址轉換為一維的線性位址,在分段部件中有6個十六位的段寄存器,如下圖
實模式與保護模式詳解一:寄存器
  1. 指令訓示器:IP
    實模式與保護模式詳解一:寄存器
  2. 标志寄存器 :Flags
    實模式與保護模式詳解一:寄存器
  3. 控制寄存器: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位

  1. GDTR寄存器

    全局描述符表寄存器

    實模式與保護模式詳解一:寄存器

    存放GDT基址和大小

    48位

    BASE:32位:GDT在記憶體基位址

    LIMIT :16位:GDT界限(即:長度-1).

    GDT最大能容納 65536 / 8 = 8192 個 描述符。

  2. IDTR寄存器

    中斷描述符表寄存器

    實模式與保護模式詳解一:寄存器

    48位

    存放中斷描述符表IDT的基位址和限長

    支援 256 個中斷

    LIMIT最大為 07FFH 。

    IDT中的描述符類型為中斷門。

實模式與保護模式有不同的寄存器使用情況