万事须己运,他得非我贤。这篇文章主要讲述实模式与保护模式详解一:寄存器相关的知识,希望能为你提供帮助。
基本寄存器在了解实模式与保护模式区别之前,先介绍一下几个基本的寄存器
- 通用寄存器
【实模式与保护模式详解一(寄存器)】寄存器组中有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中的描述符类型为中断门。
保护模式
推荐阅读
- 安卓大学生考勤签到app毕业设计
- 微信小程序-控制文本只显示若干行多余隐藏
- 基于Redis的分布式链家二手房房源数据爬虫系统 毕业设计
- 你必须会的DFS的递归实现与堆栈实现
- 基于Python网络爬虫的设计与实现毕业设计
- 设计模式——工厂模式
- 基于web的船闸自动收费系统
- js以数组值寻找对应id的name
- spring的BeanFactory和ApplicationContext