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

Posted Math_X_CS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实模式与保护模式详解一:寄存器相关的知识,希望对你有一定的参考价值。

基本寄存器

在了解实模式与保护模式区别之前,先介绍一下几个基本的寄存器

  1. 通用寄存器

寄存器组中有8个32位寄存器,属于CPU内的寄存器,也称通用寄存器,按照用途可以分为数据寄存器组和指示器变址寄存器

  • 数据寄存器组:EAX、EBX、ECX、EDX
    一般用来保存操作数,运算结果,或作为指示器,变址寄存器等
  • 指示器变址寄存器组:ESI、EDI、ESP、EBP
    一般用来存放操作数的偏移地址、用作指示器或变址寄存器
    实模式与保护模式详解一:寄存器_寄存器
  1. 段寄存器

在保护模式下,从逻辑地址到物理地址的映射过程中要涉及到分段部件和分页部件,分段部件的作用是将二维的逻辑地址转换为一维的线性地址,在分段部件中有6个十六位的段寄存器,如下图
实模式与保护模式详解一:寄存器_变址寄存器_02


  1. 指令指示器:IP
    实模式与保护模式详解一:寄存器_实模式_03
  2. 标志寄存器 :Flags
    实模式与保护模式详解一:寄存器_实模式_04
  3. 控制寄存器:CR0、CR1、CR2、CR3
  • CR0寄存器:
    CR0的低5位组成机器状态字(MSW)
    PE: 0——实模式;1——保护模式
    MP: 1(系统有数学协处理器时)
    EM: 0(仿真协处理器)
    TS: 任务切换,切换任务时自动设置
    ET: 1(协处理器的类型)
    CR0中的PG位设置为1,表示允许分页
    实模式与保护模式详解一:寄存器_实模式_05
  • CR1寄存器
    保留,为将来CPU做准备
  • CR2寄存器
    如果发生缺页,引发缺页的线性地址保存在CR2中
  • CR3寄存器
    CR3包含页目录基址:高20位
  1. GDTR寄存器
    全局描述符表寄存器
    实模式与保护模式详解一:寄存器_实模式_06
    存放GDT基址和大小
    48位
    BASE:32位:GDT在内存基地址
    LIMIT :16位:GDT界限(即:长度-1).
    GDT最大能容纳 65536 / 8 = 8192 个 描述符。
  2. IDTR寄存器
    中断描述符表寄存器
    实模式与保护模式详解一:寄存器_保护模式_07
    48位
    存放中断描述符表IDT的基地址和限长
    支持 256 个中断
    LIMIT最大为 07FFH 。
    IDT中的描述符类型为中断门。

实模式与保护模式有不同的寄存器使用情况

实模式
实模式与保护模式详解一:寄存器_变址寄存器_08
保护模式
实模式与保护模式详解一:寄存器_寄存器_09


以上是关于实模式与保护模式详解一:寄存器的主要内容,如果未能解决你的问题,请参考以下文章

实模式与保护模式详解二:地址映射

内核保护模式之分段机制

实模式与保护模式详解三:寻址方式

操作系统实现之保护模式

操作系统实现之保护模式

实模式与保护模式下的分段分页机制