![](https://csdnimg.cn/release/download_crawler_static/1017667/bg1.jpg)
1
80x86 保护运行模式
摘译自《Intel 80386 Programmer's Reference Manual》
赵炯 gohigh@sh163.net
www.plinux.org
版本:0.5
2003.3.1
80386 概述
80386 是一个高级的 32 位微处理器,专门用于多任务的操作系统,并为需要高性能的应用所设计。32
位的寄存器和数据通道支持 32 位的寻址方式和数据类型,处理器可以寻址最高可达 4GB 的物理内存以及
64TB(2
46
字节)的虚拟内存。芯片上的内存管理包括地址转换寄存器、高级多任务硬件、保护机制以及分
页虚拟内存机制。下面针对系统编程,概要说明使用 80386 的这些基本原理。
系统寄存器
设计用于系统编程的系统寄存器主要包括以下几类:
标志寄存器 EFALGS;
内存管理寄存器;
控制寄存器;
调试寄存器;
测试寄存器。
系统标志寄存器 EFLAGS 控制着 I/O、可屏蔽中断、调试、任务切换以及保护模式和多任务环境下虚拟
8086 程序的执行。其中主要标志见下图所示。
31 23 15 7 0
0 0 0 0 0 0 0 0 0 0 0 0 O 0
V
M
R
F
0
N
T
IO
PL
O
F
D
F
I
F
T
F
S
F
Z
F
0
A
F
0
P
F
1
C
F
其中系统标志:VM – 虚拟 8086 模式;RF – 恢复标志;NT – 嵌套任务标志;IO PL – I/O 特权级标
志;IF – 中断允许标志。
内存管理寄存器有 4 个,用于分段内存管理:
• GDTR – 全局描述符表寄存器(Global Descriptor Table Register);
• LDTR – 局部描述符表寄存器(Local Descriptor Table Register);
• IDTR – 中断描述符表寄存器(Interrupt Descriptor Table Register);
• TR – 任务寄存器。
其中前两个寄存器(GDTR,LDTR)分别指向段描述符表 GDT 和 LDT。IDTR 寄存器指向中断向量表。TR 寄
存器指向处理器所需的当前任务的信息。
80386 共有 4 个控制寄存器,分别是 CR0、CR1、CR2 和 CR3。格式见下图所示。
31 23 15 7 0
页目录基地址寄存器
Page Directory Base Register (PDBR)
保留
Reserved
CR3