计算机的保护模式

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Reset复位
实模式 Reset复位
LMSW指令、 修改CR0 Reset 复 位、 修改CR0
保护模式
中断或异常
V86模式
IRETD指令、 任务转换
CPU的3种运行模式及其切换
微机接口技术
特权级
• 在保护模式下,CPU有4个特权级,分
别为特权级0、1、2、3。
Ring 3
操作系统运行在高 的特权级(Ring 0)上, 而应用程序运行在低的 特权级(Ring 3)上, 应用程序不能直接修改 (破坏)操作系统的程 序和数据.
微机接口技术
2.1.2 保护模式下的特殊寄存器
EFLAGS中的位11到位0和8086完全相同。 这里主要扩展了4个标志位:
VM:v86模式位,=1 工作在v86模式, =0 工作在实模式或保护模式


RF:恢复位,与程序调试有关的一个控制位。
NT: 嵌套任务位,=1当前任务嵌套在其他任务中

IOPL:占2位,规定了哪些特权级的程序可以执行
微机接口技术
EM(Emulate processor extension):=1时系统用软件模拟 器执行数学运算。 TS(Task Switched):任务切换标 志。当任务间切换时,自动设臵此位
为1。
PG(Paging enable):=1时,存储
器管理单元允许分页。=0时,分页 功能被关闭,线性地址等于物理地址。
微机接口技术
微机接口技术
第二章 保护模式
微机接口技术
提纲
• 2.1 保护模式基础 • 2.2 内存管理 • 2.3 任务 • 2.4 特权级保护
微机接口技术
2.1 保护模式基础
通常所说的保护模式是指80386处 理器及以后的处理器所实现的运行模式。
微机接口技术
2.1.1 CPU的3种运行模式
• 从80386开始,Intel的CPU具有3种运 行模式:
微机接口技术
IDT
• 中断描述符表。
• IDT中保存的是中断门描述符。每个 门描述符包含8字节,IDT最多包含 256个门描述符,因为CPU最多支持 256个中断。中断门指出的是中断服 务程序的入口。
微机接口技术
2.1.2 保护模式下的特殊寄存器
保护模式下的中断描述符表的功能,类 似于实模式下的中断向量表,区别为IDT的 位臵可变,由相应的描述符说明,而实模式 下的中断向量表的地址是固定的,必须在物 理地址00000H处。
• Index:索引。指出要访问描述符在
段描述符表中的顺序号,Index占13 位。因此,顺序号的范围是0~8191。 每个段描述符表(GDT或LDT)中最多 有8192=213个描述符。
微机接口技术
虚拟8086模式
虚拟8086模式又称“V86模式”。 32位80X86处理器给每个以“虚拟 8086模式”运行的任务“创造”了一 个与真实的8086处理器十分相似的运 行环境,以便运行DOS程序。 既有保护功能又能执行8086代码的工 作模式。
微机接口技术
2.1.1 CPU的3种运行模式
的长度少1);
其高32位是基址,指出GDT在物理存
储器中存放的基地址。
微机接口技术
GDT
全局存储器是一种共享系统资源, 该存储器可以被所有任务访问。全局描 述符表GDT是用来定义全局存储器空间 的一种机制,它用段描述符说明一个全 局存储器中的段,每个GDT最多含有 8192个描述符(8192×8=64KB)。 全局描述符表只能有一个。
全局描述符表寄存器(GDTR )
微机接口技术
2.1.2 保护模式下的特殊寄存器
中断描述符表寄存器IDTR
IDTR是48位的寄存器。其最低16位是 限长,给出中断描述符表IDT的字节大小 (其值比IDT的长度少1);其高32位是基 址,指出IDT在物理存储器中存放的基地址。
47 IDTR 基址 16 15 限长 0
实模式 保护模式 虚拟8086模式
微机接口技术
实模式
• 在实模式下,80X86等同于一个16位 的8086微处理器。
• 采用类似于8086的体系结构,其寻 址机制、中断处理机制均和8086相 同. • 只使用低20位地址线,只能寻址1M 字节的物理地址空间.
微机接口技术
实模式
• 不支持硬件上的多任务切换.
• 段寄存器的内容,是-个被称为 段描述符的索引值,所检索到的表项 叫做段描述符,每个段描述符含8个 字节,其中包括了32位的段基址。
微机接口技术
2.1.2 保护模式下wk.baidu.com特殊寄存器
• 全局描述符表寄存器GDTR GDTR是48位的寄存器。 其最低16位是限长,给出全局描述符 表(GDT)的字节大小(其值比GDT
• DR0-DR7(Debug registers) • TR6-TR7(Test registers)
0 DR0 DR1 DR2 DR3 DR4 DR5 DR6 DR7 TR6 TR7
Base Base
Limit Limit
MSW
微机接口技术
2.1.2 保护模式下的特殊寄存器
• 标志寄存器
标志寄存器EFLAGS也扩展为32位
I/O指令
微机接口技术
2.1.2 保护模式下的特殊寄存器
• 指令指针寄存器EIP和堆栈指针寄存 器ESP
EIP和ESP都是32位寄存器,它们的 低16位分别是IP和SP。
31 EIP ESP 16 15 IP 0
SP
微机接口技术
2.1.2 保护模式下的特殊寄存器
• 保护模式增加了四个寄存器:
• 全局描述符表寄存器GDTR • 中断描述符表寄存器IDTR • 局部描述符表寄存器LDTR • 任务寄存器TR
微机接口技术
LDT
• 由于每项任务都有自己的LDT(且 每项任务只能有一个LDT),因此 保护模式的软件系统可能有多个LD T。但GDT只有一个。
微机接口技术
多LDT的示例
微机接口技术
LDTR
• LDTR是一个16位的选择符,包含LDT 描述符在GDT中的索引,不直接指出 LDT的位臵和大小。
Ring 2
Ring 1
Ring 0 操作系统
应用程序
微机接口技术
2.1.2 保护模式下的特殊寄存器
• 通用32位寄存器
EAX EBX ECX EDX ESI EDI EBP ESP
31
16 15
AX BX CX DX SI DI BP SP
0
微机接口技术
• GDTR : global descriptor table • LDTR : local descriptor table • IDTR : interrupt descriptor table
− CS:EIP=0008:804F1266 SS:ESP=0010:8053CED8 − DS=0023 ES=0023 FS=0030 GS=0000
15 14 13 12 11 10 9 8 7 6 5 4 3 选择符 Index 2 TI 1 0
RPL
微机接口技术
2.1.2 保护模式下的特殊寄存器
• 不支持特权级,可以执行所有特权指 令。 • DOS操作系统运行于实模式下,而 Windows/Linux操作系统运行于保护
模式下。
微机接口技术
保护模式
• CPU提供了段式和页式内存管理功能,支 持多任务和特权级。
• 物理寻址空间高达4GB(80386/80486) 或64GB(Pentium及以上CPU)。
EIP
CS DS SS ES FS GS AX BX CX DX SP BP SI DI EFLAGS 47 GDTR IDTR LDTR CR0 CR1 CR2 CR3 16 15
• TR : task register
• EIP : 32 bits in length • EFLAGS
• CR0, CR1, CR2, CR3
任务状态段TSS在存储器的基地址和限长 (大小)由TSS描述符指出。 TSS描述符放在全局描述符表GDT中,TR 内容为选择符,它指出TSS描述符在GDT中的
微机接口技术
由任务寄存器TR取得TSS的过程
Physical Memory ③ TR 16 15 0 LIMIT ⑤ TSS TSS descriptor GDT ①② 47 BASE
微机接口技术
LDTR寄存器确定LDT的位臵和限长的过程
LDT LDTR

④ ①

GDTR
GDT

①和②步由GDTR确定了GDT表在存储器中的位臵和限 长。LDTR中是一个选择符,它包含了LDT描述符在GDT中的 索引。③步是依据LDTR在GDT中取出LDT描述符的过程。在 LDT描述符中,包含由LDT的位臵和限长,即④和⑤步。

①和②步由GDTR确定了GDT表在存储器中的位 臵和限长。TR是一个选择符,这个选择符中包含了 TSS描述符在GDT中的索引。③步依据TR在GDT中取
出TSS描述符。在第④和⑤步中,在TSS描述符中取
得TSS的基址和限长。
微机接口技术
2.1.2 保护模式下的特殊寄存器
• 控制寄存器
有四个系统控制寄存器CR0~CR3。CR0的低 5位是系统控制标志,被称为机器状态字 MSW;分页机制中用到CR3、CR2和CR0的 其他位。
• RPL(Requestor Privilege Level): 请求特权级,2位二进制数字,范围 为0~3。
• 00代表特权级0,01代表特权级1,10 代表特权级2,11代表特权级3。 • 请求特权级是将要访问的段的特权级。
微机接口技术
• TI(Table Indicator):表指示符。 为0时,从GDT中选择描述符;为1时, 从LDT中选择描述符。
微机接口技术
2.1.2 保护模式下的特殊寄存器
在实模式和V86模式下,段寄存器的16 位内容是20位段首址的高16位,段首址的 低4位为0。 在保护模式下,段寄存器中的16位内 容是一个选择符(selector),用于在段 描述符表(GDT或LDT)中选择(确定)段 描述符。
微机接口技术
2.1.2 保护模式下的特殊寄存器
微机接口技术
GDT
• GDT是位于存贮器中,用全局描述符 表寄存器GDTR指出它的位臵和大小, 可软件编程改变。
微机接口技术
2.1.2 保护模式下的特殊寄存器
0 1 全局描 述符表 GDT 8190 8191 MAX: 64k bytes 8K entries
BASE 47
LIMIT 16 15 0
微机接口技术
2.1.2 保护模式下的特殊寄存器
• 保护模式下存贮器的虚拟地址须先由 分段部件转换为线性地址,再由分页 部件转换为物理地址。
• 线性地址由段基址和段内偏移量相加
得到。段内偏移量32位(段最大 4GB),段基地址仍然由16位的段 寄存器选择。
微机接口技术
2.1.2 保护模式下的特殊寄存器
微机接口技术
2.1.2 保护模式下的特殊寄存器
• 段寄存器
• 32位CPU有6个段寄存器:
• CS——代码段寄存器,其值为代码段的段值;
DS——数据段寄存器,其值为数据段的段值;
ES——附加段寄存器,其值为附加数据段的段值;
SS——堆栈段寄存器,其值为堆栈段的段值;
FS——附加段寄存器,其值为附加数据段的段值; GS——附加段寄存器,其值为附加数据段的段值。
GDTR和IDTR的值必须在进入保护模式之 前装入。
微机接口技术
2.1.2 保护模式下的特殊寄存器
• 局部描述符表寄存器LDTR
保护模式下多任务的环境中每个任务都有一 个局部描述符表LDT。LDT只含有与系统中 某一个任务相关的各个段的描述符。和所 有任务有关的公用段的描述符放在全局描 述符表GDT中。这样,就可以使每一任 务的代码段、数据段、堆栈段与系统其他 部分隔离开,达到保护的目的。
微机接口技术
TR
• 任务寄存器TR
任务寄存器TR在保护模式的任务切换机 制中使用。TR是16位的选择符,其内 容为索引值,它选中的是TSS描述符。 TR的初值由软件装入,当执行任务切 换指令时TR的内容自动修改。
微机接口技术
TSS
在多任务环境下,每个任务都有属于自 己的任务状态段TSS,TSS中包含启动任务所 必需的信息。
31 CR0 PG 30~19 00..00 4 ET 3 TS 2 EM 1 MP 0 PE
微机接口技术
2.1.2 保护模式下的特殊寄存器
机器状态字MSW中各位的含义如下:
PE(Protection mode Enable):保护模式允
许标志。=0为实模式,CPU复位(启动)时自
动进入实模式;=1为保护模式。可以通过软件 设臵PE位,进入或退出保护模式。 MP(Monitor coprocessor extension):运算 协处理器存在位。=1表示系统中有运算协处理 器。
相关文档
最新文档