实模式与保护模式详解一(寄存器)

万事须己运,他得非我贤。这篇文章主要讲述实模式与保护模式详解一:寄存器相关的知识,希望能为你提供帮助。
基本寄存器在了解实模式与保护模式区别之前,先介绍一下几个基本的寄存器

  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中的描述符类型为中断门。
实模式与保护模式有不同的寄存器使用情况实模式

保护模式




    推荐阅读