? 80X86和 Pentium—PentiumⅣ 系列各个成员的概况 。
80X86的三种工作模式及寻址原理 。
80386的内存分页管理机制 。
80386具有保护功能的指令 。
本章内容
Pentium系列微处理器的特性 。
了解 80X86和 Pentium—Pentium Ⅳ 系列各成员的基本特点 。
掌握 80X86的三种工作模式 (实模式,
保护模式及虚拟 86模式 )及寻址原理 。
掌握 80386的内存分页管理机制 。
了解 80386具有保护功能的指令 。
学习目的
了解 Pentium系列微处理器的特性 。
15.1 从 8086到 80x86
15.1.1 80286微处理器简介
1,80286的主要特性
① 地址线 24根,可寻址 16MB内存空间。
② 具有两种地址方式,实 地址方式和 虚 地址保护方式。
③ 使用 虚拟 内存。
④ 24种寻址方式。
⑤ 可以同时运行 多个任务 。
⑥ 三种类型中断:硬件中断、软件中断和异常中断。
⑦ 增加了高级类指令、执行环境操作类指令和 保护类指令。
80286的内部结构如下图所示。
2,80286的内部结构偏移量加法器段基址段大小段界限检查器物理地址加法器地址锁存和驱动器预取器 处理器扩 充接口总线控制数据收发器
6字节预取队列
ALU
寄存器控制 3译码指令队列指令译码器总线部件 BU
指令部件 IU
执行部件 EU
地址部件 AU
BHE,M/IO
PEACK
PEREQ
READY,HOLD
LOCK,HLDA
RESET
CLK
CAP
NMI
INTRERROR
BUSY
A23-A0
S0-S1,COD/INTA
D15-D0
VSS
VCC
15.1.2 80386微处理器及保护方式下的存储器寻址
1,80386的主要特性
① 32位 微处理器
② 提供 32位 外部数据总线接口
③ 具有片内集成的存储器管理部件 MMU,
可支持 虚拟存储 和 特权保护 。
④ 具有 实地址模式,保护模式 和 虚拟 8086模式 等三种工作方式。
⑤ 具有 4GB(232)的物理寻址空间和 64TB(246)
的虚拟存储空间。
⑥ 通过配用 80287或 80387数值协处理器可支持高速数值处理 。
⑦ 在目标码一级与 8086,80286芯片 完全兼容 。
2,80386的内部结构
80386的内部结构如下图所示。
控制部件测试部件分段描述符超高速缓存器分段部件分页描述符超高速缓存器分页部件总线接口部件预取队列预取单元
32位寄存器组
64位桶形移位器
ALU
指令译码指令队列
32位地址总线
32位数据总线控制总线
NPX
接口中断复位
CPU MMU
BIU
⑴ 中央处理部件 CPU
中央处理部件又包括 指令预取单元,指令预译码单元 和 指令执行部件 三部分。其中:
⑵ 总线接口部件 BIU
总线接口部件提供 中央处理部件 和外部系统之间的高速接口。
通用寄存器组 既可用于数据操作,又可用于地址计算。
桶形移位寄存器 用来有效地实现指令的移位、循环移位和位操作,同时也可用于乘法和除法等操作,以加快运算速度。
⑶ 存储器管理部件 MMU
存储器管理部件又分为 分段 单元和 分页 单元二部分。
80386的总线周期仅为 2个 时钟。
分段单元完成从 逻辑地址 到 线性地址 之间的转换。
分页单元完成线性地址到 物理地址 之间的转换。
3,80386的寄存器结构
80386中共有 7类 32个寄存器,它们是:通用寄存器组、指令指针和标志寄存器、段寄存器、控制寄存器、调试寄存器和测试寄存器等。
⑴ 通用寄存器组
8个 32位 寄存器,EAX,EBX,ECX,EDX、
ESI,EDI,EBP,ESP
8个 16位 寄存器,AX,BX,CX,DX,SI、
DI,BP,SP
8个 8位 寄存器,AH,AL,BH,BL,CH、
CL,DH,DL
31 16 15 8 7 0 32位
AH AL EAX
AX
BH BL EBX
BX
CH CL ECX
CX
DH DL EDX
DX
SI ESI
DI EDI
BP EBP
SP ESP
注,要访问 80386的 32位寄存器,程序中必须用伪指令,,386” 来说明。
例 15-1 使用 80386指令编程,实现两个 32
位数的乘法。
.MODEL SMALL ; 选择 SMALL模式
.386 ;选择 80386指令集
STACK SEGMENT PARA STACK
DB 256 DUP(?)
STACK ENDS
.DATA ; 数据段开始
NUM1 DD 01234567H ; 定义双字
NUM2 DD 89ABCDEFH
ANS DQ? ; 定义四字
.CODE ; 代码段开始
START PROC FAR
BEGIN,PUSH DS
SUB AX,AX
PUSH AX
MOV AX,@DATA ; 装载数据段,
注意 DATA前面有符号,@”
MOV DS,AX
MOV EAX,NUM1
MUL DWORD PTR NUM2
MOV DWORD PTR ANS[0],EAX
MOV DWORD PTR ANS[4],EDX
RET
START ENDP
END BEGIN
⑵ 指令 指针和标志寄存器
32位指令指针寄存器,EIP
32位标志寄存器,EFALG,其中定义了 15位。
⑶ 段寄存器
80386有 6个 16位的段寄存器,分别为 CS、
SS,DS,ES,FS和 GS。
在实模式下,段寄存器的功能及用法与
8086相同。
在保护模式下,段寄存器有不同的用法,其内容如下所示。
RPL( D1 ~ D0),请求者特权级。 00为最高级,
11为最低级。
TI(D2),描述符表选择位。 0为选择全局描述符表,
1为选择局部描述符表。
选择子 ( D15 ~ D3),13位 的选择子,用于选择描述符表中的某一个描述符。一个描述符表中,
最多有 213=8192个描述符。
15 4 3 2 1 0
选择子 TI RPL
⑷ 描述符 (Descriptors)
描述符有两种,即 段描述符 和 系统描述符 。
① 段描述符段描述符占连续的 8个字节,其格式如下图所示 。
下图中,B31~ B0为 32位段基地址,
L19 ~ L0为 20位的段界限,第 5个字节为访问权限字节,第 6个字节的高 4位为访问控制位。这些信息用于控制在保护模式下对存储器段的访问。
字节 含义
0 界限 (L7-L0)
1 界限 (L15-L8)
2 基地址 ( B7-B0)
3 基地址( B15-B8)
4 基地址( B23-B16)
5 P DPL S E X RW A
6 G D 0 AV 界限 (L19-L16)
7 基地址( B31-B24)
② 系统描述符系统描述符也占连续的 8个字节,其格式如下页图所 示。其中,P,DPL和 G位的含义与段描述符相同,Type位指示可能有的 16种系统描述符类型,如 LDT,任务门、调用门、中断门、陷阱门等。
⑸ 描述符表 (Descriptor Tables)
80386的存储器是分段的,每个段对应一个 段描述符,这些描述符组成了各种 描述符表,
每个描述符表的界限为 16位,最大可存放
65536/8=8192个描述符。
字节 含义
0 界限 (L7-L0)
1 界限 (L15-L8)
2 基地址 ( B7-B0)
3 基地址( B15-B8)
4 基地址( B23-B16)
5 P DPL 0 T Y P E
6 G 0 0 0 界限 (L19-L16)
7 基地址( B31-B24)
描述符表包括全局描述符表 GDT,局部描述符表 LDT,中断描述符表 IDT和任务状态段 TSS。
描述符表的段基地址和段界限由系统地址寄存器保存 。
系统地址寄存器包括:
全局描述符表寄存器 GDTR( 48位)
局部描述符表寄存器 LDTR( 16位)
中断描述符表寄存器 IDTR( 48位)
任务状态段寄存器 TR( 16位)
GDTR
32位基地址
16位界限
0#段描述符
1#段描述符
32位基地址
20位界限权限等存储器系统
( 数据段 )
全局描述符表 GDT
0008
DS
1#
0#
1#段
32位偏移量 EA
00008000H
寻址单元
FF
00
FF
00
92
00
20
00
00200000H
0020FFFFH
00208000H
段描述符和段的关系保护模式下,每个任务可寻址 8192个全局段和
8192个局部段,每个段的最大长度为 4GB,则一个任务最大的寻址范围,即虚拟存储空间是:
8192× 4GB+8192× 4GB=64TB
⑹ 控制寄存器
80386有 4个 32位的控制寄存器 CR0,CR1、
CR2和 CR3,主要用于保护模式和分页管理。
CR0的第 0位称为 PE位 (保护激活位 )。 在实模式下,PE=0; 当用指令使 PE=1时,进入保护模式 。
CR0第 31位称为 PG位,当 PG位置成 1时,则进入分页管理 。
CR3用于分页管理。在分页方式下,CR3中保存了 页目录表 的物理基地址。
⑺ 调试寄存器和测试寄存器
4,80386的工作方式
① 实地址模式 (Real Mode)
系统启动后,80386自动进入实地址模式。
实地址模式 与 8086的寻址 原理一致,物理寻址 范围 1MB。
② 保护模式 ( Protected Mode)
在 实地址模式下可切换到保护模式(用软件指令使 CR0的 PE位 为 1)。
在保护模式下,系统对不同任务使用虚拟存储器空间。
由段描述符提供段基地址,物理寻址 范围 4GB。
③ 虚拟 8086模式( Virtual 8086 Mode)
在保护模式下执行指令 IRETD,则进入虚拟
8086模式。
虚拟 8086模式内存寻址与实地址模式相同 。
每个任务最大的寻址空间 为,1MB+64KB–16B。
保护模式
PE=1
PE=0
实地址模型
RESET
RESET
虚拟 86
模式
IRETD指令中断三种工作模式的切换
5,80386的内存分页机制 (Memory Paging
Mechanism)
当 386控制寄存器 CR0的 PG被置成 1时,则进入分页管理。
⑴ 页目录表、页表和页
在分页方式下,系统以 页 ( 4KB) 为单位管理内存。
系统将某一任务用到的所有页的基地址( 32
位)存放到一个或几个 页表 中。
所有页表的基地址 (32位 )存放到一个 页目录表 中。
页、页表、页目录表的长度均为 4KB。
CR3
页目录表基地址 0#页表基地址页目录表
1#页表基地址
1023#页表基地址
0#页基地址
1#页表
1#页基地址
1023#页基地址
0#页页内偏移地址寻址单元页目录表、页表和页的基地址
10
00
00
20
80
00
00
30
10000004H
20001000H 30008000H
300080FFH
页目录表的基地址在控制寄存器 CR3中 。
⑵ 线性地址与物理地址
① 线性地址,在保护模式下,由段寄存器 (选择子 ),段描述符和偏移地址所形成的 32位全地址。
② 物理地址,对应物理存储器的实际地址。
不分页时,32位线性地址就是实际的物理地址,而在分页管理下,32位线性地址需通过内存分页管理机制转化为另外的物理地址。
③ 线性地址的构成页目录地址 页表地址 页内偏移地址
31 22 21 12 11 0
10位 10位 12位线性地址的构成
页目录地址( 10位):第 31~ 22位。说明该页表的序号( 0#~1023#)。该值乘以 4即为该页表基地址在页目录表中的相对地址。
页表地址 ( 10位 ),第 21~ 12位 。 说明该页的序号
( 0#~1023#) 。 该值乘以 4即为该页基地址在页表中的相对地址 。
页内偏移地址(占 12位):第 11~ 0位。说明某寻址单元的页内地址。
CR3的内容页目录地址?4
+ 找到某个目录项步骤 1
⑶ 分页机制的寻址过程从该目录项中取出目录基地址页目录地址? 4
+ 找到某个页项步骤 2
从该页项中取出页基地址页内偏移地址
+ 物理地址 (32位 )
步骤 3
基地址页目录表 页表
+ + +
页目录地址 页表地址 页内位移地址
4?4
物理地址
CR3
线性地址
PG=1
分页
PG=0
禁止分页 物理地址虚拟 86模式也启用了 386的分页功能 。
由于虚拟 86模式下任务的寻址范围是
1MB+64KB–16B,故线性地址的 31~21位全为 0,剩下低 21位 ( 20~ 0 ) 对应
1MB+64KB–16B的地址空间 。
通用寄存器都扩展为 32位,分别记为
EAX,EBX,ECX,EDX,ESP,EBP,
ESI,EDI。 指令指针寄存器 EIP。
6,80386保护模式下的指令特点
(2) 增加了两个段寄存器 FS和 GS,四个控制寄存器 CR0,CR1,CR2,CR3。
(1) 可以执行 32位 的乘除运算。
(3) 标志寄存器扩展为 32位 。
功能,调整选择子的 RPL字段 。
目的,防止系统软件用较高的特权级获得对子程序的访问权 。 执行该条指令必须满足一定的条件 。
⑴ APRL指令将存储器中表的 物理地址 和 界限 分别加载到 GDTR (全局描述符寄存器 )和
IDTR (中断描述符寄存器 )。
① LGDT/LIDT指令
⑵ 对系统表进行操作的指令把 GDTR或 IDTR寄存器的内容保存到存储器中 (连续的 48位 )。
② SGDT/SIDT存储器地址把 选择器 的值 作 为操 作 数加 载到
LDTR,再把选择器指示的 描述符 从 GDT加载到描述符高速缓存器 。 LTR对应 TR (任务寄存器 )。
③ LLDT/LTR选择器的值选择器描述符缓存器
LLDT
GDT
LDTR
LLDT指令的执行过程
①
②
③
⑶ VERR和 VERW指令
VERR是校验段的读取权的指令 。
VERW是校验段的写入权的指令 。
⑷ LAR和 LSL指令
LAR为加载访问权字节的指令 。
LSL为加载段边界指令 。
⑷ LAR和 LSL指令
LMSW,把 16位数据加载到 MSW寄存器 。 MSW
(机器状态字 )为 CR0的 D15~D0位 。
CLTS,复位 TS位 。
HLT,暂停指令 。
MOV CRn,r32; 把数据写入到控制寄存器 。
MOV r32,CRn; 读控制寄存器另外,还有读写测试寄存器和调试寄存器的指令 。
(1) 一片集成块中包含了 80386,80387,8KB
/16KB高速缓冲存储器 。
(2) 有大约一半的指令只在一个时钟周期内完成 。
特点
15.1.3 80486微处理器简介
1,80486的主要特性
(3) 采用倍频技术 (66MHZ/33MHZ,100MHZ/
33MHZ,120MHZ/40MHZ),使 CPU处理速度加快 。
(4) 完全的 32位体系结构,支持多处理器 。
2,80486的基本结构寄存器组桶形移位器
ALU
整数部件描述符寄存器极限 /属性
PLA
分段部件 分页部件转移用旁视缓冲区
TLB
高速缓存部件
8KB高速缓存总线控制器数据总线收发器地址总线驱动器指令译码部件已译码队列浮点运算部件浮点寄存器组指令预取部件
32字节指令队列控制 ROM
控制 /保护部件
A0~ A31
D0~ D31
控制信号
80486的基本结构
15.2.1 Pentium微处理器 体系结构
15.2 Pentium微处理器
1,Pentium微处理器简介
Pentium处理器 的外观图
Pentium微处理器内部的主要寄存器为 32位,但有 64位外部数据总线宽度。外部地址总线宽为 36位,
但一般使用 32位宽。
(1) 66MHZ时,速度 110MIPS; 100MHZ时,
速度为 150MIPS。
(2) 8KB的指令高速缓冲存储器和 8KB数据高速缓冲存储器 。
(3) 64位数据总线宽度特点
(5) 两个独立的整数处理器 (超标量技术 ),允许每个时钟周期执行 2条指令 。
(6) 包含转移预测技术 。
(4) 多媒体扩展的附加指令 (MMX指令 )
2.存储器系统
Pentium微处理器的物理存储器系统大小为 4GB,
分为 8个存储体,每个存储体包含 512MB 的数据。
Pentium微处理器使用 64位数据总线来同时访问
8个存储体。
3,高速缓冲结构 (Cache Structure)
Pentium微处理器内含 8KB的指令高速缓冲存储器( cache) 和 8KB数据高速缓冲存储器 (cache),
外部还可接第二级高速缓冲存储器( L2 cache)。
4,超标量体系结构 (Superscaler Architerture)
CPU采用 U,V两条指令流水线,能在一个时钟周期内发射两条简单的整数指令,也可发射一条浮点指令。
Pentium微处理器采用分支预测逻辑以减少分支导致的时间消耗。
6,浮点运算部件
Pentium微处理器 内部包含了一个 8段的流水浮点运算器。浮点部件支持 IEEE754标准的单、
双精度格式的浮点数 。
5,分支预测逻辑 (Branch Prediction Logic)
15.2.2 Pentium微处理器的特定寄存器
1,控制寄存器
Pentium微处理器的控制寄存器 CR0~ CR4。
2,标志寄存器 EFLAG
Pentium微处理器增加了 4个新的标志位 ID、
VIP,VIF 和 AC,用于控制和指示一些
Pentium新特性的条件 。
15.2.3 Pentium的存储器管理
1.分页机制
Pentium允许采用 4KB或 4MB作为页的单位,
由控制寄存器的 PSE位来选择。
采用 4MB页时,线性地址被分成两个部分,
最左 10位仍为页目录地址,而其它 22位直接为页内偏移地址(从 0到 4MB)。
2.存储器管理模式
Pentium微处理器除了实地址模式、保护模式和虚拟 8086模式外,还增加了存储器管理模式 SMM,它们处在同一级别。
15.2.4 Pentium微处理器寻址方式及指令格式
1.寻址方式寻址方式主要是指段内偏移量的获取方 式。
段内偏移量又称为有效地址 EA( effective
address)。
2,指令格式
Pentium指令的长度可以从 1字节到 12字节,
还可以带前缀( prefix),前缀的长度最大为 4
字节。
3.指令类型
80386对 8086和 80286指令进行了许多扩充 。
80486包括了 80386的全部指令又增加 6条指令。
Pentium包括了 80486的全部指令又增加了 5条指令。
15.3 高档 Pentium微处理器
15.3.1 Pentium MMX
Pentium MMX是英特尔在 Pentium内核基础上改进的,其最大的特点是增加了 57条 MMX
扩展指令集。这些指令专门用来处理音视频相关的计算。
15.3.2 Pentium Pro
Pentium Pro处理器是英特尔首个专门为 32
位服务器、工作站设计的处理器,可以应用在高速辅助设计、机械引擎、科学计算等领域。
15.3.3 Pentium II
Pentium II处理器芯片内部集成了 750万个晶体管 (比最近一代 Pentium Pro处理器所集成的晶体管数多出了 200万颗 ),并整合了 MMX指令集技术,可以更快更流畅的播放影音 Video、
Audio以及图像等多媒体数据。
Pentium II首次引入了 S.E.C(Single Edge
Contact,单边接触 )
封装技术,将高速缓存与处理器整合在一块 PCB板上。
15.3.4 Pentium Ⅲ
1999年英特尔发布了 Pentium III处理器。
Pentium III处理器最大的改进就是新增加了 70条新指令 (SIMD,SSE)。
整个 Pentium III是一个相当庞大的系列,所涉及的处理器主频种类非常多,最低的是 450MHz,最高的可达 1.33GHz,系统总线频率也有两种:
133MHz和 100MHz。
缓存支持全速、带 ECC校正的 256KB高级二级缓存 (L2 cache),或者是不连续、半速的 ECC
256KB二级缓存。提供 32KB一级缓存 (L1 cache)。
内存寻址可以支持到 4GB,物理内存可以支持到
64GB。
制造工艺也有多种,最初是采用 0.25微 米,
后期版本采用的是 0.18微米。
15.3.5 Pentium 4
2000年英特尔发布了 Pentium 4处理器。
Pentium 4处理器集成了 4200万个晶体管,改进版的 Pentium 4(Northwood)
更是集成了 5500万个晶体管,并且开始采用 0.18微米进行制造,初始速度就达到了 1.5GHz。
Pentium 4处理器的系统总线虽然仅为 100MHz,
同样是 64位数据带宽,但由于其利用了与 AGP4X
相同的 4倍速技术,每秒可传输高达,
8*100MHz*4=3200MB数据。
目前最新的 Pentium 4处理器为 800FSB的
3.2GHz处理器,除了 800MHz FSB的 P4处理器外,533MHz FSB的 P4系列中也有主频达
3.06GHz的处理器。
Pentium 4还提供了 SSE2指令集,这套指令集增加了 144条全新的指令。采用 SSE2指令集能处理多种数据结构。
在服务器领域,Intel于 2001年发布了新一代
Xeon处理器。
Xeon处理器是基于 NetBurst架构,有更高级的网络功能,更复杂更卓越的 3D图形性能。
80X86的三种工作模式及寻址原理 。
80386的内存分页管理机制 。
80386具有保护功能的指令 。
本章内容
Pentium系列微处理器的特性 。
了解 80X86和 Pentium—Pentium Ⅳ 系列各成员的基本特点 。
掌握 80X86的三种工作模式 (实模式,
保护模式及虚拟 86模式 )及寻址原理 。
掌握 80386的内存分页管理机制 。
了解 80386具有保护功能的指令 。
学习目的
了解 Pentium系列微处理器的特性 。
15.1 从 8086到 80x86
15.1.1 80286微处理器简介
1,80286的主要特性
① 地址线 24根,可寻址 16MB内存空间。
② 具有两种地址方式,实 地址方式和 虚 地址保护方式。
③ 使用 虚拟 内存。
④ 24种寻址方式。
⑤ 可以同时运行 多个任务 。
⑥ 三种类型中断:硬件中断、软件中断和异常中断。
⑦ 增加了高级类指令、执行环境操作类指令和 保护类指令。
80286的内部结构如下图所示。
2,80286的内部结构偏移量加法器段基址段大小段界限检查器物理地址加法器地址锁存和驱动器预取器 处理器扩 充接口总线控制数据收发器
6字节预取队列
ALU
寄存器控制 3译码指令队列指令译码器总线部件 BU
指令部件 IU
执行部件 EU
地址部件 AU
BHE,M/IO
PEACK
PEREQ
READY,HOLD
LOCK,HLDA
RESET
CLK
CAP
NMI
INTRERROR
BUSY
A23-A0
S0-S1,COD/INTA
D15-D0
VSS
VCC
15.1.2 80386微处理器及保护方式下的存储器寻址
1,80386的主要特性
① 32位 微处理器
② 提供 32位 外部数据总线接口
③ 具有片内集成的存储器管理部件 MMU,
可支持 虚拟存储 和 特权保护 。
④ 具有 实地址模式,保护模式 和 虚拟 8086模式 等三种工作方式。
⑤ 具有 4GB(232)的物理寻址空间和 64TB(246)
的虚拟存储空间。
⑥ 通过配用 80287或 80387数值协处理器可支持高速数值处理 。
⑦ 在目标码一级与 8086,80286芯片 完全兼容 。
2,80386的内部结构
80386的内部结构如下图所示。
控制部件测试部件分段描述符超高速缓存器分段部件分页描述符超高速缓存器分页部件总线接口部件预取队列预取单元
32位寄存器组
64位桶形移位器
ALU
指令译码指令队列
32位地址总线
32位数据总线控制总线
NPX
接口中断复位
CPU MMU
BIU
⑴ 中央处理部件 CPU
中央处理部件又包括 指令预取单元,指令预译码单元 和 指令执行部件 三部分。其中:
⑵ 总线接口部件 BIU
总线接口部件提供 中央处理部件 和外部系统之间的高速接口。
通用寄存器组 既可用于数据操作,又可用于地址计算。
桶形移位寄存器 用来有效地实现指令的移位、循环移位和位操作,同时也可用于乘法和除法等操作,以加快运算速度。
⑶ 存储器管理部件 MMU
存储器管理部件又分为 分段 单元和 分页 单元二部分。
80386的总线周期仅为 2个 时钟。
分段单元完成从 逻辑地址 到 线性地址 之间的转换。
分页单元完成线性地址到 物理地址 之间的转换。
3,80386的寄存器结构
80386中共有 7类 32个寄存器,它们是:通用寄存器组、指令指针和标志寄存器、段寄存器、控制寄存器、调试寄存器和测试寄存器等。
⑴ 通用寄存器组
8个 32位 寄存器,EAX,EBX,ECX,EDX、
ESI,EDI,EBP,ESP
8个 16位 寄存器,AX,BX,CX,DX,SI、
DI,BP,SP
8个 8位 寄存器,AH,AL,BH,BL,CH、
CL,DH,DL
31 16 15 8 7 0 32位
AH AL EAX
AX
BH BL EBX
BX
CH CL ECX
CX
DH DL EDX
DX
SI ESI
DI EDI
BP EBP
SP ESP
注,要访问 80386的 32位寄存器,程序中必须用伪指令,,386” 来说明。
例 15-1 使用 80386指令编程,实现两个 32
位数的乘法。
.MODEL SMALL ; 选择 SMALL模式
.386 ;选择 80386指令集
STACK SEGMENT PARA STACK
DB 256 DUP(?)
STACK ENDS
.DATA ; 数据段开始
NUM1 DD 01234567H ; 定义双字
NUM2 DD 89ABCDEFH
ANS DQ? ; 定义四字
.CODE ; 代码段开始
START PROC FAR
BEGIN,PUSH DS
SUB AX,AX
PUSH AX
MOV AX,@DATA ; 装载数据段,
注意 DATA前面有符号,@”
MOV DS,AX
MOV EAX,NUM1
MUL DWORD PTR NUM2
MOV DWORD PTR ANS[0],EAX
MOV DWORD PTR ANS[4],EDX
RET
START ENDP
END BEGIN
⑵ 指令 指针和标志寄存器
32位指令指针寄存器,EIP
32位标志寄存器,EFALG,其中定义了 15位。
⑶ 段寄存器
80386有 6个 16位的段寄存器,分别为 CS、
SS,DS,ES,FS和 GS。
在实模式下,段寄存器的功能及用法与
8086相同。
在保护模式下,段寄存器有不同的用法,其内容如下所示。
RPL( D1 ~ D0),请求者特权级。 00为最高级,
11为最低级。
TI(D2),描述符表选择位。 0为选择全局描述符表,
1为选择局部描述符表。
选择子 ( D15 ~ D3),13位 的选择子,用于选择描述符表中的某一个描述符。一个描述符表中,
最多有 213=8192个描述符。
15 4 3 2 1 0
选择子 TI RPL
⑷ 描述符 (Descriptors)
描述符有两种,即 段描述符 和 系统描述符 。
① 段描述符段描述符占连续的 8个字节,其格式如下图所示 。
下图中,B31~ B0为 32位段基地址,
L19 ~ L0为 20位的段界限,第 5个字节为访问权限字节,第 6个字节的高 4位为访问控制位。这些信息用于控制在保护模式下对存储器段的访问。
字节 含义
0 界限 (L7-L0)
1 界限 (L15-L8)
2 基地址 ( B7-B0)
3 基地址( B15-B8)
4 基地址( B23-B16)
5 P DPL S E X RW A
6 G D 0 AV 界限 (L19-L16)
7 基地址( B31-B24)
② 系统描述符系统描述符也占连续的 8个字节,其格式如下页图所 示。其中,P,DPL和 G位的含义与段描述符相同,Type位指示可能有的 16种系统描述符类型,如 LDT,任务门、调用门、中断门、陷阱门等。
⑸ 描述符表 (Descriptor Tables)
80386的存储器是分段的,每个段对应一个 段描述符,这些描述符组成了各种 描述符表,
每个描述符表的界限为 16位,最大可存放
65536/8=8192个描述符。
字节 含义
0 界限 (L7-L0)
1 界限 (L15-L8)
2 基地址 ( B7-B0)
3 基地址( B15-B8)
4 基地址( B23-B16)
5 P DPL 0 T Y P E
6 G 0 0 0 界限 (L19-L16)
7 基地址( B31-B24)
描述符表包括全局描述符表 GDT,局部描述符表 LDT,中断描述符表 IDT和任务状态段 TSS。
描述符表的段基地址和段界限由系统地址寄存器保存 。
系统地址寄存器包括:
全局描述符表寄存器 GDTR( 48位)
局部描述符表寄存器 LDTR( 16位)
中断描述符表寄存器 IDTR( 48位)
任务状态段寄存器 TR( 16位)
GDTR
32位基地址
16位界限
0#段描述符
1#段描述符
32位基地址
20位界限权限等存储器系统
( 数据段 )
全局描述符表 GDT
0008
DS
1#
0#
1#段
32位偏移量 EA
00008000H
寻址单元
FF
00
FF
00
92
00
20
00
00200000H
0020FFFFH
00208000H
段描述符和段的关系保护模式下,每个任务可寻址 8192个全局段和
8192个局部段,每个段的最大长度为 4GB,则一个任务最大的寻址范围,即虚拟存储空间是:
8192× 4GB+8192× 4GB=64TB
⑹ 控制寄存器
80386有 4个 32位的控制寄存器 CR0,CR1、
CR2和 CR3,主要用于保护模式和分页管理。
CR0的第 0位称为 PE位 (保护激活位 )。 在实模式下,PE=0; 当用指令使 PE=1时,进入保护模式 。
CR0第 31位称为 PG位,当 PG位置成 1时,则进入分页管理 。
CR3用于分页管理。在分页方式下,CR3中保存了 页目录表 的物理基地址。
⑺ 调试寄存器和测试寄存器
4,80386的工作方式
① 实地址模式 (Real Mode)
系统启动后,80386自动进入实地址模式。
实地址模式 与 8086的寻址 原理一致,物理寻址 范围 1MB。
② 保护模式 ( Protected Mode)
在 实地址模式下可切换到保护模式(用软件指令使 CR0的 PE位 为 1)。
在保护模式下,系统对不同任务使用虚拟存储器空间。
由段描述符提供段基地址,物理寻址 范围 4GB。
③ 虚拟 8086模式( Virtual 8086 Mode)
在保护模式下执行指令 IRETD,则进入虚拟
8086模式。
虚拟 8086模式内存寻址与实地址模式相同 。
每个任务最大的寻址空间 为,1MB+64KB–16B。
保护模式
PE=1
PE=0
实地址模型
RESET
RESET
虚拟 86
模式
IRETD指令中断三种工作模式的切换
5,80386的内存分页机制 (Memory Paging
Mechanism)
当 386控制寄存器 CR0的 PG被置成 1时,则进入分页管理。
⑴ 页目录表、页表和页
在分页方式下,系统以 页 ( 4KB) 为单位管理内存。
系统将某一任务用到的所有页的基地址( 32
位)存放到一个或几个 页表 中。
所有页表的基地址 (32位 )存放到一个 页目录表 中。
页、页表、页目录表的长度均为 4KB。
CR3
页目录表基地址 0#页表基地址页目录表
1#页表基地址
1023#页表基地址
0#页基地址
1#页表
1#页基地址
1023#页基地址
0#页页内偏移地址寻址单元页目录表、页表和页的基地址
10
00
00
20
80
00
00
30
10000004H
20001000H 30008000H
300080FFH
页目录表的基地址在控制寄存器 CR3中 。
⑵ 线性地址与物理地址
① 线性地址,在保护模式下,由段寄存器 (选择子 ),段描述符和偏移地址所形成的 32位全地址。
② 物理地址,对应物理存储器的实际地址。
不分页时,32位线性地址就是实际的物理地址,而在分页管理下,32位线性地址需通过内存分页管理机制转化为另外的物理地址。
③ 线性地址的构成页目录地址 页表地址 页内偏移地址
31 22 21 12 11 0
10位 10位 12位线性地址的构成
页目录地址( 10位):第 31~ 22位。说明该页表的序号( 0#~1023#)。该值乘以 4即为该页表基地址在页目录表中的相对地址。
页表地址 ( 10位 ),第 21~ 12位 。 说明该页的序号
( 0#~1023#) 。 该值乘以 4即为该页基地址在页表中的相对地址 。
页内偏移地址(占 12位):第 11~ 0位。说明某寻址单元的页内地址。
CR3的内容页目录地址?4
+ 找到某个目录项步骤 1
⑶ 分页机制的寻址过程从该目录项中取出目录基地址页目录地址? 4
+ 找到某个页项步骤 2
从该页项中取出页基地址页内偏移地址
+ 物理地址 (32位 )
步骤 3
基地址页目录表 页表
+ + +
页目录地址 页表地址 页内位移地址
4?4
物理地址
CR3
线性地址
PG=1
分页
PG=0
禁止分页 物理地址虚拟 86模式也启用了 386的分页功能 。
由于虚拟 86模式下任务的寻址范围是
1MB+64KB–16B,故线性地址的 31~21位全为 0,剩下低 21位 ( 20~ 0 ) 对应
1MB+64KB–16B的地址空间 。
通用寄存器都扩展为 32位,分别记为
EAX,EBX,ECX,EDX,ESP,EBP,
ESI,EDI。 指令指针寄存器 EIP。
6,80386保护模式下的指令特点
(2) 增加了两个段寄存器 FS和 GS,四个控制寄存器 CR0,CR1,CR2,CR3。
(1) 可以执行 32位 的乘除运算。
(3) 标志寄存器扩展为 32位 。
功能,调整选择子的 RPL字段 。
目的,防止系统软件用较高的特权级获得对子程序的访问权 。 执行该条指令必须满足一定的条件 。
⑴ APRL指令将存储器中表的 物理地址 和 界限 分别加载到 GDTR (全局描述符寄存器 )和
IDTR (中断描述符寄存器 )。
① LGDT/LIDT指令
⑵ 对系统表进行操作的指令把 GDTR或 IDTR寄存器的内容保存到存储器中 (连续的 48位 )。
② SGDT/SIDT存储器地址把 选择器 的值 作 为操 作 数加 载到
LDTR,再把选择器指示的 描述符 从 GDT加载到描述符高速缓存器 。 LTR对应 TR (任务寄存器 )。
③ LLDT/LTR选择器的值选择器描述符缓存器
LLDT
GDT
LDTR
LLDT指令的执行过程
①
②
③
⑶ VERR和 VERW指令
VERR是校验段的读取权的指令 。
VERW是校验段的写入权的指令 。
⑷ LAR和 LSL指令
LAR为加载访问权字节的指令 。
LSL为加载段边界指令 。
⑷ LAR和 LSL指令
LMSW,把 16位数据加载到 MSW寄存器 。 MSW
(机器状态字 )为 CR0的 D15~D0位 。
CLTS,复位 TS位 。
HLT,暂停指令 。
MOV CRn,r32; 把数据写入到控制寄存器 。
MOV r32,CRn; 读控制寄存器另外,还有读写测试寄存器和调试寄存器的指令 。
(1) 一片集成块中包含了 80386,80387,8KB
/16KB高速缓冲存储器 。
(2) 有大约一半的指令只在一个时钟周期内完成 。
特点
15.1.3 80486微处理器简介
1,80486的主要特性
(3) 采用倍频技术 (66MHZ/33MHZ,100MHZ/
33MHZ,120MHZ/40MHZ),使 CPU处理速度加快 。
(4) 完全的 32位体系结构,支持多处理器 。
2,80486的基本结构寄存器组桶形移位器
ALU
整数部件描述符寄存器极限 /属性
PLA
分段部件 分页部件转移用旁视缓冲区
TLB
高速缓存部件
8KB高速缓存总线控制器数据总线收发器地址总线驱动器指令译码部件已译码队列浮点运算部件浮点寄存器组指令预取部件
32字节指令队列控制 ROM
控制 /保护部件
A0~ A31
D0~ D31
控制信号
80486的基本结构
15.2.1 Pentium微处理器 体系结构
15.2 Pentium微处理器
1,Pentium微处理器简介
Pentium处理器 的外观图
Pentium微处理器内部的主要寄存器为 32位,但有 64位外部数据总线宽度。外部地址总线宽为 36位,
但一般使用 32位宽。
(1) 66MHZ时,速度 110MIPS; 100MHZ时,
速度为 150MIPS。
(2) 8KB的指令高速缓冲存储器和 8KB数据高速缓冲存储器 。
(3) 64位数据总线宽度特点
(5) 两个独立的整数处理器 (超标量技术 ),允许每个时钟周期执行 2条指令 。
(6) 包含转移预测技术 。
(4) 多媒体扩展的附加指令 (MMX指令 )
2.存储器系统
Pentium微处理器的物理存储器系统大小为 4GB,
分为 8个存储体,每个存储体包含 512MB 的数据。
Pentium微处理器使用 64位数据总线来同时访问
8个存储体。
3,高速缓冲结构 (Cache Structure)
Pentium微处理器内含 8KB的指令高速缓冲存储器( cache) 和 8KB数据高速缓冲存储器 (cache),
外部还可接第二级高速缓冲存储器( L2 cache)。
4,超标量体系结构 (Superscaler Architerture)
CPU采用 U,V两条指令流水线,能在一个时钟周期内发射两条简单的整数指令,也可发射一条浮点指令。
Pentium微处理器采用分支预测逻辑以减少分支导致的时间消耗。
6,浮点运算部件
Pentium微处理器 内部包含了一个 8段的流水浮点运算器。浮点部件支持 IEEE754标准的单、
双精度格式的浮点数 。
5,分支预测逻辑 (Branch Prediction Logic)
15.2.2 Pentium微处理器的特定寄存器
1,控制寄存器
Pentium微处理器的控制寄存器 CR0~ CR4。
2,标志寄存器 EFLAG
Pentium微处理器增加了 4个新的标志位 ID、
VIP,VIF 和 AC,用于控制和指示一些
Pentium新特性的条件 。
15.2.3 Pentium的存储器管理
1.分页机制
Pentium允许采用 4KB或 4MB作为页的单位,
由控制寄存器的 PSE位来选择。
采用 4MB页时,线性地址被分成两个部分,
最左 10位仍为页目录地址,而其它 22位直接为页内偏移地址(从 0到 4MB)。
2.存储器管理模式
Pentium微处理器除了实地址模式、保护模式和虚拟 8086模式外,还增加了存储器管理模式 SMM,它们处在同一级别。
15.2.4 Pentium微处理器寻址方式及指令格式
1.寻址方式寻址方式主要是指段内偏移量的获取方 式。
段内偏移量又称为有效地址 EA( effective
address)。
2,指令格式
Pentium指令的长度可以从 1字节到 12字节,
还可以带前缀( prefix),前缀的长度最大为 4
字节。
3.指令类型
80386对 8086和 80286指令进行了许多扩充 。
80486包括了 80386的全部指令又增加 6条指令。
Pentium包括了 80486的全部指令又增加了 5条指令。
15.3 高档 Pentium微处理器
15.3.1 Pentium MMX
Pentium MMX是英特尔在 Pentium内核基础上改进的,其最大的特点是增加了 57条 MMX
扩展指令集。这些指令专门用来处理音视频相关的计算。
15.3.2 Pentium Pro
Pentium Pro处理器是英特尔首个专门为 32
位服务器、工作站设计的处理器,可以应用在高速辅助设计、机械引擎、科学计算等领域。
15.3.3 Pentium II
Pentium II处理器芯片内部集成了 750万个晶体管 (比最近一代 Pentium Pro处理器所集成的晶体管数多出了 200万颗 ),并整合了 MMX指令集技术,可以更快更流畅的播放影音 Video、
Audio以及图像等多媒体数据。
Pentium II首次引入了 S.E.C(Single Edge
Contact,单边接触 )
封装技术,将高速缓存与处理器整合在一块 PCB板上。
15.3.4 Pentium Ⅲ
1999年英特尔发布了 Pentium III处理器。
Pentium III处理器最大的改进就是新增加了 70条新指令 (SIMD,SSE)。
整个 Pentium III是一个相当庞大的系列,所涉及的处理器主频种类非常多,最低的是 450MHz,最高的可达 1.33GHz,系统总线频率也有两种:
133MHz和 100MHz。
缓存支持全速、带 ECC校正的 256KB高级二级缓存 (L2 cache),或者是不连续、半速的 ECC
256KB二级缓存。提供 32KB一级缓存 (L1 cache)。
内存寻址可以支持到 4GB,物理内存可以支持到
64GB。
制造工艺也有多种,最初是采用 0.25微 米,
后期版本采用的是 0.18微米。
15.3.5 Pentium 4
2000年英特尔发布了 Pentium 4处理器。
Pentium 4处理器集成了 4200万个晶体管,改进版的 Pentium 4(Northwood)
更是集成了 5500万个晶体管,并且开始采用 0.18微米进行制造,初始速度就达到了 1.5GHz。
Pentium 4处理器的系统总线虽然仅为 100MHz,
同样是 64位数据带宽,但由于其利用了与 AGP4X
相同的 4倍速技术,每秒可传输高达,
8*100MHz*4=3200MB数据。
目前最新的 Pentium 4处理器为 800FSB的
3.2GHz处理器,除了 800MHz FSB的 P4处理器外,533MHz FSB的 P4系列中也有主频达
3.06GHz的处理器。
Pentium 4还提供了 SSE2指令集,这套指令集增加了 144条全新的指令。采用 SSE2指令集能处理多种数据结构。
在服务器领域,Intel于 2001年发布了新一代
Xeon处理器。
Xeon处理器是基于 NetBurst架构,有更高级的网络功能,更复杂更卓越的 3D图形性能。