32位微处理器(1)
标志寄存器EF: 32位, 低12位是8086的FR, 低16位是80286的FR, 低18位是80386的FR.
FLAGS 同样, EIP﹑EF均可用于16位, (IP,FR) EFLAGS
三.
31
80386CPU的内部寄存器:
17 16 15 14 13 12 11 0
保留 1). IOPL标志:
4个
5. 系统地址寄存器:
1). GDTR:
2个系统地址寄存器: GDTR, IDTR
全局描述符表寄存器(48位).
存放全局描述符表(GDT)的32位线性基地址和16位限值. 即GDTR在物理存储器地址空间中定义全局描述符表GDT
47 GDTR
16 15
BASE LIMIT
0
BASE指示GDT在物理存储器中开始的位置 LIMIT规定GDT的界限 LIMIT有16位,从而GDT最大65536个字节, 能够容纳65536/8=8192个描述符
三.
80386CPU的内部寄存器:
中断描述符表寄存器(48位) 存放中断描述符表(IDT)的32位线性基地址和 16位限值. 即:IDTR在物理存储器地址空间中定义中断描述符表IDT.
47 IDTR BASE 16 15 LIMIT 0
2). IDTR:
∵ ∴
M系统中只有一个GDT和IDT 无需通过选择字来选择描述符表 故 只有GDTR和IDTR. 即 由GDTR(IDTR)确定表中的描述符项,去寻址存储器系 统地址.
CR0中的PG位设置为1,表示允许分页,即分页部件可工作.
三.
80386CPU的内部寄存器:
2). CR2: 页面故障线性地址寄存器: 用于报告出错信息. 当发生页异常时,CPU把引起异常的32位线性地 址 CR2中; 操作系统中的页异常处理程序通过检查CR2的 内容, 可知线性地址空间中的哪一页引起页故障. 3). CR3: 页组目录基址寄存器: 用于存放页目录表的物 理基地址. ∵ 页目录表的基地址是以4KB为边界,即低12位 为0 ∴ CR3的低12位为0, 高20位有效.
三.
80386CPU的内部寄存器:
三.
80386CPU的内部寄存器:
1). CR0: 控制寄存器0:
CR0的低4位组成机器状态字(MSW): ①保护允许位 PE: 0——实模式;1——保护模式 ②协处理器位 MP: 1(系统有数学协处理器) ③仿真协处理器位 EM: 1(要求软件仿真) ④任务切换位TS: 任务切换,切换任务时自动设置
二.
80386的结构
5. 段管理部件(SU):
实现有效地址的计算, 完成从逻 辑地址到线性地址的转换,且送 PU; (管理逻辑地址空间) 6. 页转 换; (管理物理地址空间) 规定: 1页=4KB 1段=4KMB=4096MB=4GB (最大) 1个任务=16K段 =16K*4KMB=64MMB=64TB(允许)
三.
80386CPU的内部寄存器:
的起始地址,结束地址,表的大小,表中可以存放多 少个描述符?
例:(GDTR)=001000000FFFH,求GDT在物理存储器中
解:GDT的起始地址为00100000H
结束地址为 00100000H+0FFFH=00100FFFH 表的大小为 0FFFH+1=4096字节 表中可以存放 4096/8=512个描述符
一. 80386的特点:
6. 386芯片: 132条引脚封装,其耗散功率在1.5~3.0W之间, 时钟频率=16MHZ, 运行速度=3倍80286; 三种工作方式: 实地址方式:
7.
即386为一个高速的8086,目标代码与 8086兼容, 寻址与8086相同; 保护方式: 虚拟存储空间,M按段页管理,有四级保 护 机构,寻址不同; 虚拟8086方式: 386像在实地址一样, 可执行8086的应 用程序,同时可运行386的 操作系统及 程序. 保护方式是最常用的,最具特色的方式,也称本性方式.
三.
80386CPU的内部寄存器:
3). VM标志: 虚拟8086模式标志, VM=1, 表示386在保护模式系统中已从保 护模式转换为虚拟8086模式. VM由任务切换置1. PUSHF指令使VM=0. 4). RF标志: 恢复标志, 用于在调试失败后, 强迫程序恢 复执行. RF是配合调试寄存器的断点或单步操作 一起使用的. ①. 在处理断点之前, 在两条指令之间对该位进行检查. 当检查RF=1时, 即使在下一条指令执行时遇到断点 或调试故障,该故障也会被处理器忽略(即不产生异 常中断).
空间的定义: • 一个任务占用的空间称局部空间,多个任 务共同占用的空间称全局空间. 如: 被各个任务共同调用的子程序和公 共数据,就放在全局空间中. • 局部空间只是某个任务可访问的M空间, 而全局空间是所有任务都能访问的M空间. • 一个任务由多段组成. • 局部空间是相互隔离的.
三.
80386CPU的内部寄存器:
三.
②.
80386CPU的内部寄存器:
在成功执行每一条指令后, CPU将RF自动清0,准 备下一个断点中断。 当接收到一个非调试故障的故障信号时,CPU将RF置 1,即忽略该故障,不产生中断。
③.
4.
控制寄存器: 4个, 均32位. CR0﹑CR1﹑CR2﹑CR3. 供操作系统用. 用于保存机器的各种全局性状态,以指挥系 统所有任务的运行.
三.
80386CPU的内部寄存器:
程序员可见
段描述符高速缓冲寄存器(不可见)
CS
DS SS ES FS
访 问 权 限
基
界
址
限
GS 63 52 51 20 19 0
三.
3.
80386CPU的内部寄存器:
指令指针寄存器EIP: 32位, 与IP意义相同,为对CS的偏移地址.
31
16 15
IP
0
EIP
LDT是定义任务用到的局部存储器地址空间
释义: 1).保护方式:一个任务 属于自己的LDT, 多任务系统中,有多个LDT. 2).每张LDT由一个描述符来描述.该描述符 放在GDT中. 3).任务初始化和任务切换时,对应任务的选 择字装入LDTR,CPU据此指向GDT的一 项, 得到该任务的描述符,并装入描述符寄 存器中. 4).386有3张描述符表: 全局:GDT(1个) 定义了系统中使用的所有段 局部:LDT 中段:IDT(1个):为中断设计,指向256个中断子程序 入口地址的中断描述符. 三张表均放在M中,其位置分别由 GDTR,LDTR,IDTR定义
第十一章 32位微处理器
§11—1 一. 80386的特点: 80386微处理器
1. 技术上:流水线,虚拟存储器,片内存储管理,存储器分段和分页 机构, 四级保护机构; 2. 多任务﹑多用户操作系统, 与8086﹑80286兼容; 3. 32条DB和内部数据通道(R﹑ALU﹑内总线均为32位), 可进行8﹑16﹑32位数据处理; 4. 寻址: 在实地址方式下: 232==4KMB(4GB) 的物理空间, 在虚地址保护方式下: 246==64MMB==64TB虚拟存储空间; 5. M按段组织: 一个段最长==4KMB 即: 64TB虚拟存储空间==16384段; (即允许一个任务可包 含的 段)
D 数据寄存器
例:
MOV MOV
ECX, 12345678H ECX, EDX
三.
80386CPU的内部寄存器:
指针和变址寄存器 ESP,EBP,ESI,EDI
31 ESP EBP ESI EDI
16
15
0 SP BP SI DI
例:
MOV
EAX,
[ESP]
三.
80386CPU的内部寄存器:
例:
第十一章
32位微处理器
1. Pentium微处理器的外形和封装 1993年开始推出,共生产三代: •P5(Pentium 60/66) 0.8m, 5V电压 •P54C(Pentium 75/90/100/120/133/150/166/200), 0.6m, 3.8V电压 •P55C(Pentium MMX 166/200/233), 0.35m, 2.8V电压 集成度:310万晶体管/片
31 16 15 8 7 AH BH CH DH AL BL CL DL 0 AX BX CX DX SP BP SI DI FLAGS
EAX EBX ECX EDX ESP EBP ESI EDI
注:在保护方式﹑虚拟方式下, 各段寄存器(16位)称为段选 择字, 64位的则称为描述符 寄存器, 它们一一对应. 但仍以CS,DS,ES, SS,FS,GS称.
三.
80386CPU的内部寄存器:
47 GDTR
16
15
0
32位线性基地址
32位线性基地址
16位界限值
16位界限值
IDTR
三.
80386CPU的内部寄存器:
2个系统段寄存器: LDTR, TR 1). LDTR: 局部描述符表寄存器(16位) 存放选择局部描述符表LDT的16位段选择字. LDTR------64 位的局部描述符寄存器. 对应 16位的LDTR并不直接定义LDT,它只是一个指向GDT 中LDT描述符的选择符。 如果LDTR中装入了选择字,相应的描述符将从GDT中 读出并装入局部描述符表高速缓冲寄存器。将该描述 符装入高速缓冲寄存器就为当前任务创建了一个LDT
V R M F
N IOPL T
与8086意义相同
EFLAGS
2). NT标志:
I/O特权级标志. 仅用于保护模式, 表示I/O操作 处于0~3级特权中的哪一级. 00: 特权级0 01: --------1 10: --------2 11: --------3 任务嵌套标志. 指出当前执行的任务是否嵌套于另 一任务中. NT=1,表示嵌套;NT=0,未嵌套. NT也仅用于保护模式,0或1的置入由任务的控制转 移来实现.