第二章 IA-32结构微处理器与8086
合集下载
第2章 IA-32结构微处理器与8086

2.从实模式至保护模式
ቤተ መጻሕፍቲ ባይዱ
从80286开始,在80386中真正完善保 护模式。
3.片内存储管理单元(MMU)
32位地址,可寻址4GB物理地址。 大多数PC的物理内存配置远小于4GB。 但应用程序却可能需要庞大的地址空 间。 因此,在操作系统中提供了虚拟存储 器管理机制,而这要求硬件支持。
4.浮点支持
① 方向标志(Direction Flag,DF) ② 中断允许标志(Interrupt-enable Flag,IF) ③ 追踪标志(Trace Flag,TF)
4.指令指针
指令指针(IP)寄存器包含下一条要执 行的指令在当前码段中的偏移。
2.3.3 存储器组织
图2-8
8086物理地址的形成
图2-9 8086的存储器结构
图2-4
8086微处理器基本执行环境
2.3.2 基本的程序执行寄存器
通用寄存器,这八个寄存器能用于存放操 作数和指针。 段寄存器,这些寄存器最多能保存四个段 选择子。
FLAGS(程序状态和控制)寄存器, FLAGS寄存器报告正在执行的程序的状态, 并允许有限地(应用程序级)控制处理器。 IP(指令指针)寄存器。IP寄存器包括下 一条要执行的指令的16位指针。
图2-1
8086(8088)的功能结构
图2-2
8位微处理器的执行顺序
图2-3
8086的执行顺序
2.3 8086微处理器的执行环境 2.3.1 基本执行环境概要
在8086微处理器上执行的程序或任务 都有一组执行指令的资源用于存储代码、 数据和状态信息。
地址空间 基本程序执行寄存器 堆栈(Stack) I/O端口
2.1.2 8086性能的提高
IA-32结构微处理器与8086

6. 数据流SIMD扩展( Streaming SIMD Extensions -SSE) 自Pentium III处理器开始,在IA32微处理器中引进了数据流SIMD(单指 令多数据)扩展(SSE)技术。SSE指令 集包括了70条指令,其中包含提高3D图 形运算效率的50条SIMD浮点运算指令、 12条MMX 整数运算增强指令、8条优化内 存中连续数据块传输指令。
同济大学电信学院
2.1.1 8086功能的扩展
128 位指令设计以支持媒体和科学应用 。由于这些指令所用的向量操作数允许应用 程序在多个向量元素上并行操作。元素能是 整数(从字节至四字)或浮点数(单精度或 双精度)。
同济大学电信学院
2.1.1 8086功能的扩展
在SSE2的基础上又增加了13个额外 的SIMD指令。SSE3 ( Streaming SIMD Extensions3)中13个新指令的主要目的 是改进线程同步和特定应用程序领域, 例如媒体和游戏。这些新增指令强化了 处理器在浮点转换至整数、复杂算法、 视频编码、SIMD浮点寄存器操作以及线 程同步等五个方面的表现,最终达到提 升多媒体和游戏性能的目的。
同济大学电信学院
2.1.2 8086性能的提高
到了奔腾处理器增加了第二个执行流水 线以达到超标量性能(两个已知的流水线u 和v,一起工作能实现每个时钟执行两条指 令)。
同济大学电信学院
2.1.2 8086性能的提高
Intel Pentium 4处理器是第一个基 于Intel NetBurst微结构的处理器。Intห้องสมุดไป่ตู้l NetBurst微结构是新的32bit微结构,它 允许处理器能在比以前的IA-32处理器更 高的时钟速度和性能等级上进行操作。 Intel Pentium 4处理器有快速的执行引擎 、Hyper流水线技术与高级的动态执行。 使指令执行的并行性进一步提高,从而 做到在一个时钟周期中可以执行多条指 令。
同济大学电信学院
2.1.1 8086功能的扩展
128 位指令设计以支持媒体和科学应用 。由于这些指令所用的向量操作数允许应用 程序在多个向量元素上并行操作。元素能是 整数(从字节至四字)或浮点数(单精度或 双精度)。
同济大学电信学院
2.1.1 8086功能的扩展
在SSE2的基础上又增加了13个额外 的SIMD指令。SSE3 ( Streaming SIMD Extensions3)中13个新指令的主要目的 是改进线程同步和特定应用程序领域, 例如媒体和游戏。这些新增指令强化了 处理器在浮点转换至整数、复杂算法、 视频编码、SIMD浮点寄存器操作以及线 程同步等五个方面的表现,最终达到提 升多媒体和游戏性能的目的。
同济大学电信学院
2.1.2 8086性能的提高
到了奔腾处理器增加了第二个执行流水 线以达到超标量性能(两个已知的流水线u 和v,一起工作能实现每个时钟执行两条指 令)。
同济大学电信学院
2.1.2 8086性能的提高
Intel Pentium 4处理器是第一个基 于Intel NetBurst微结构的处理器。Intห้องสมุดไป่ตู้l NetBurst微结构是新的32bit微结构,它 允许处理器能在比以前的IA-32处理器更 高的时钟速度和性能等级上进行操作。 Intel Pentium 4处理器有快速的执行引擎 、Hyper流水线技术与高级的动态执行。 使指令执行的并行性进一步提高,从而 做到在一个时钟周期中可以执行多条指 令。
第2章 8086微处理器及其体系结构

5
1985年:英特尔发布了80386处理器 年 英特尔发布了 处理器
历史上第一个具有“多任务”功能的 历史上第一个具有“多任务”功能的CPU
6
1993年:第一款与数字无关的处理器“Pentium” 年 第一款与数字无关的处理器“
内建MMX(多媒体指令集)
Pentium处理器集成了310万个晶体管,最初推出的初 始频率是60MHz、66MHz,后来提升到200MHz以上。 引入了SIMD(单指令多数据)执行方式
16
两种CPU指令执行模式对比
MPU 等待取指1 执行1 等待取指2 执行2 等待取指3 执行3
总线
忙
闲
忙
闲
忙ቤተ መጻሕፍቲ ባይዱ
闲
传统微处理器的指令执行过程
BIU
取指1
取指2
取指3
取指4
取指5
取指6 执行6
EU 总线 忙
执行1 忙
执行2 忙
执行3 忙
执行4 忙
执行5 忙
8086CPU的指令执行过程-流水线工作模式
17
11
2003年英特尔发布了Pentium M处理器
Pentium M处理器加上802.11的无线WiFi技术,就构成了 英特尔Centrino(迅驰)移动运算技术的整套解决方案
12
2005年第二季度,基于“Smithfield”双核心的 英特尔Pentium 8XX处理器发布
Pentium 8XX处理器采用90纳米工艺生产,支持800MHz 前端总线,配备2MB二级缓存(每个核心1MB),能用两 个核心实现两个线程。
7
1997年英特尔发布了Pentium II处理器
Pentium II首次引入了S.E.C封装(Single Edge Contact)技术,将高速缓存与处理器整合在一块 PCB板上
第2章 IA-32结构微处理器与8086

32位地址能寻址4GB物理地址。
2.1.1 8086功能的扩展
第二章 IA-32结构微 处理器与8086
2.从实模式至保护模式
从80286开始,在80386中真正完善保护模式。 3.片内存储管理单元(MMU)
32位地址,可寻址4GB物理地址。 大多数PC的物理内存配置远小于4GB。 但应用程序却可能需要庞大的地址空间。 因此,在操作系统中提供了虚拟存储器管理机 制,而这要求硬件支持。
图2-4 8086微处理器基本执 IA-32结构微 处理器与8086
通用寄存器:这八个寄存器能用于存放操作数和指 针。
段寄存器:这些寄存器最多能保存四个段选择子。
FLAGS(程序状态和控制)寄存器:FLAGS寄存 器报告正在执行的程序的状态,并允许有限地(应 用程序级)控制处理器。
普通高等学校计算机教育“十三五”
微机原理与接口技术(第3版)
周明德 张晓霞 兰方鹏 著式
内容导航
CONTENTS
2.1 IA-32微处理器是8086的延伸 2.2 8086的功能结构 2.3 8086微处理器的执行环境 1.4 微型计算机的结构
2.1 IA-32微处理器是8086的延伸第二章 IA-32结构微
2.引入片内缓存(Cache)
为了减少从存储器中取指令与数据的时间, 利用指令执行的局部性原理,把近期可能要用到 的指令与数据放在工作速度比主存储器更快(当 然,容量更小)的缓存中。
2.1 8086的功能结构
第二章 IA-32结构微 处理器与8086
8086 CPU从功能上来说分成两大部分:总线 接口单元(Bus Interface Unit,BIU)和执行单 元(Execution Unit,EU)。
2.1.1 8086功能的扩展
2.1.1 8086功能的扩展
第二章 IA-32结构微 处理器与8086
2.从实模式至保护模式
从80286开始,在80386中真正完善保护模式。 3.片内存储管理单元(MMU)
32位地址,可寻址4GB物理地址。 大多数PC的物理内存配置远小于4GB。 但应用程序却可能需要庞大的地址空间。 因此,在操作系统中提供了虚拟存储器管理机 制,而这要求硬件支持。
图2-4 8086微处理器基本执 IA-32结构微 处理器与8086
通用寄存器:这八个寄存器能用于存放操作数和指 针。
段寄存器:这些寄存器最多能保存四个段选择子。
FLAGS(程序状态和控制)寄存器:FLAGS寄存 器报告正在执行的程序的状态,并允许有限地(应 用程序级)控制处理器。
普通高等学校计算机教育“十三五”
微机原理与接口技术(第3版)
周明德 张晓霞 兰方鹏 著式
内容导航
CONTENTS
2.1 IA-32微处理器是8086的延伸 2.2 8086的功能结构 2.3 8086微处理器的执行环境 1.4 微型计算机的结构
2.1 IA-32微处理器是8086的延伸第二章 IA-32结构微
2.引入片内缓存(Cache)
为了减少从存储器中取指令与数据的时间, 利用指令执行的局部性原理,把近期可能要用到 的指令与数据放在工作速度比主存储器更快(当 然,容量更小)的缓存中。
2.1 8086的功能结构
第二章 IA-32结构微 处理器与8086
8086 CPU从功能上来说分成两大部分:总线 接口单元(Bus Interface Unit,BIU)和执行单 元(Execution Unit,EU)。
2.1.1 8086功能的扩展
第二章 IA-32结构微处理器

15
AH BH CH DH
SP BP SI DI IP PSW CS DS SS ES
AL BL CL DL
数据寄存器
指针寄存器
变址寄存器
通 用 寄 存 器
控制寄存器
段寄存器
0
2.1 8086处理器结构
2.1.2 8086的内部寄存器结构 通用寄存器包含数据寄存器、地址指针寄存 器和变址寄存器
2.1.2 8086的内部寄存器结构 1、通用寄存器
变址寄存器SI和DI
SI:源变址寄存器;DI:目的变址寄存器; SI和DI一般与DS联合,可以确定源存储单元和目的 存储单元的物理地址; SI和DI具有自动增加或减小1的能力;
2.1 8086处理器结构
2.1.2 8086的内部寄存器结构 2、段寄存器
2.1 8086处理器结构
2.1.2 8086的内部寄存器结构 3、控制寄存器
位编号 15 14 13 12 11 10 9 名 称 8 7 6 5 4 AF 3 2 PF 1 0 CF OF DF IF TF SF ZF
条件码标志包含CF、PF、AF、ZF、SF、OF。
条件码标志的值一般由处理器根据运算结果自动设置, 其值与操作数有关;
AF,Auxiliary Carry Flag,辅助进位位
表征运算过程中第3位是否向第4位发生进位;
15 14 … 4 3 2 1 0
AF
PF,Parity Flag,奇偶效验位
当前累加器中所存放的数的奇偶效验情况; PF = 1,低8位中有偶数个‘1’; PF = 0,低8位中有奇数个‘1’;
1、总线接口单元
寄存器包括:CS、DS、SS、ES和IP; 20位地址加法器 6个字节的指令队列 总线控制接口 处理器与外部总线的接口电路 外部总线包括地址总线(20),数据总线(16)及 控制总线。
AH BH CH DH
SP BP SI DI IP PSW CS DS SS ES
AL BL CL DL
数据寄存器
指针寄存器
变址寄存器
通 用 寄 存 器
控制寄存器
段寄存器
0
2.1 8086处理器结构
2.1.2 8086的内部寄存器结构 通用寄存器包含数据寄存器、地址指针寄存 器和变址寄存器
2.1.2 8086的内部寄存器结构 1、通用寄存器
变址寄存器SI和DI
SI:源变址寄存器;DI:目的变址寄存器; SI和DI一般与DS联合,可以确定源存储单元和目的 存储单元的物理地址; SI和DI具有自动增加或减小1的能力;
2.1 8086处理器结构
2.1.2 8086的内部寄存器结构 2、段寄存器
2.1 8086处理器结构
2.1.2 8086的内部寄存器结构 3、控制寄存器
位编号 15 14 13 12 11 10 9 名 称 8 7 6 5 4 AF 3 2 PF 1 0 CF OF DF IF TF SF ZF
条件码标志包含CF、PF、AF、ZF、SF、OF。
条件码标志的值一般由处理器根据运算结果自动设置, 其值与操作数有关;
AF,Auxiliary Carry Flag,辅助进位位
表征运算过程中第3位是否向第4位发生进位;
15 14 … 4 3 2 1 0
AF
PF,Parity Flag,奇偶效验位
当前累加器中所存放的数的奇偶效验情况; PF = 1,低8位中有偶数个‘1’; PF = 0,低8位中有奇数个‘1’;
1、总线接口单元
寄存器包括:CS、DS、SS、ES和IP; 20位地址加法器 6个字节的指令队列 总线控制接口 处理器与外部总线的接口电路 外部总线包括地址总线(20),数据总线(16)及 控制总线。
微机原理第2章-IA32微处理器的功能结构

2.3.4 基本程序执行寄存器
0
15
16
31
0
15
0
15
16
31
7
8
AL
BL
CL
DL
AH
BH
CH
DH
EAX
EBX
ECX
EDX
ESP
EBP
ESI
EDI
1.通用寄存器
EAX 累加器寄存器:存放操作数和结果 EBX 基址寄存器:在DS段中的数据指针;存放操作数 ECX 计数寄存器:串和循环操作的计数器 EDX 数据寄存器:I/O指针
逻辑地址 是程序中使用的地址,它由段基址和段内偏移值所组成,段基址与段内偏移值都为16位的二进制数。
物理地址 也叫实际地址或绝对地址,是CPU访问存储器时实际使用的地址,为20位地址。 物理地址=段基址×16+段内偏移地址。
1
2
存储器物理地址的形成
【例】各独立段的分配情况示例。
设CS=B000H、DS=1CDEH、SS=4200H、ES=0150H,它们分别为代码段、数据段、堆栈段和附加段的段首址。自每个段首址开始,各段均占64KB的范围,各段之间互不重叠。
基本寄存器:在程序执行时暂时保存中间结果;在进行算术运算和逻辑运算时,通用寄存器任何一个都可以作为源操作数或目的操作数。
指针和变址寄存器
ESI 串操作的源指针 EDI 串操作的目标指针 ESP 堆栈指针 EBP 堆栈上数据指针
通用寄存器的特殊用途和隐含性质
6个段寄存器,保存16位段基址: CS 代码段 SS 堆栈段 DS 数据段 ES 附加段 FS 数据段F GS数据段G
指令的重叠操作
2.2.2 80386的功能结构
0
15
16
31
0
15
0
15
16
31
7
8
AL
BL
CL
DL
AH
BH
CH
DH
EAX
EBX
ECX
EDX
ESP
EBP
ESI
EDI
1.通用寄存器
EAX 累加器寄存器:存放操作数和结果 EBX 基址寄存器:在DS段中的数据指针;存放操作数 ECX 计数寄存器:串和循环操作的计数器 EDX 数据寄存器:I/O指针
逻辑地址 是程序中使用的地址,它由段基址和段内偏移值所组成,段基址与段内偏移值都为16位的二进制数。
物理地址 也叫实际地址或绝对地址,是CPU访问存储器时实际使用的地址,为20位地址。 物理地址=段基址×16+段内偏移地址。
1
2
存储器物理地址的形成
【例】各独立段的分配情况示例。
设CS=B000H、DS=1CDEH、SS=4200H、ES=0150H,它们分别为代码段、数据段、堆栈段和附加段的段首址。自每个段首址开始,各段均占64KB的范围,各段之间互不重叠。
基本寄存器:在程序执行时暂时保存中间结果;在进行算术运算和逻辑运算时,通用寄存器任何一个都可以作为源操作数或目的操作数。
指针和变址寄存器
ESI 串操作的源指针 EDI 串操作的目标指针 ESP 堆栈指针 EBP 堆栈上数据指针
通用寄存器的特殊用途和隐含性质
6个段寄存器,保存16位段基址: CS 代码段 SS 堆栈段 DS 数据段 ES 附加段 FS 数据段F GS数据段G
指令的重叠操作
2.2.2 80386的功能结构
数字电子技术 第2章 IA-32结构微处理器与8086

2.1 IA-32微处理器是8086的延伸
Intel 8086
功能扩展
性能提高
IA-32
6
物理与电子电气工程学院
2.1 IA-32微处理器是8086的延伸
16位扩展为32位 实模式到保护模式
浮点支持
功能扩展
MMX技术
流SIMD扩展(SSE)
MMU
7
物理与电子电气工程学院
2.1 IA-32微处理器是8086的延伸
器与外界设备传送数据.
BX(base):基址寄存器,常用于地址索引; CX(count):计数寄存器,常用于计数/保存计算值,如在移
位指令,循环(loop)和串处理指令中用作隐含的计数器. DX(data):数据寄存器,常用于数据传递。
15
物理与电子电气工程学院
1.通用寄存器
SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目 前的堆栈位置; BP(Base Pointer):堆栈上的数据指针,可用作SS的一个
流水线技术
性能提高
片内缓存
8
物理与电子电气工程学院
2.2 8086的功能结构
通用 寄存 器
AH BH CH DH AL BL CL DL SP BP SI DI
16位
地址 位
16位
输入/输出 控制电路
存 储 器 接 口
ALU
标志寄存器
执行部分 控制电路
mov al,10000001B add al,1 结果: (al)=10000010B
24
物理与电子电气工程学院
3. FLAGS寄存器
(4) CF(Carry Flag)进位标志位
flag的第0位是CF。 一般情况下,在进行无符号数运算的时候,它记 录了运算结果的最高有效位向更高位的进位值, 或从更高位的借位值。
IA-32结构微处理器与8086

第1章 概述 第2章 IA-32 结构微处理器与 8086 2.3 8086微处理器的执行环境
2.3.2 基本的程序执行寄存器:
通用寄存器 段寄存器 程序状态和标志寄存器 IP寄存器
汇编助记符:
16位寄存器的汇编助记符为 AX~DX、SI、DI、BP 8位寄存器的汇编助记符为 AH、AL、BH、BL、CH、CL、DH、DL AH、AL是AX的高/低8位,设:AX=5678H 则: AH=56H,AL=78H 反之,当89HAH,90HAL后 则: AX=8990H
2.段寄存器:
D15 D0
CS SS DS ES FS GS
代码段寄存器 堆栈段寄存器 数据段寄存器 附加数据段(附加段)寄存器 附加数据段(附加段)寄存器 附加数据段(附加段)寄存器
3.标志寄存器(F): 为16位,包含一组状态标志、一个控制标志一个系统 标志;
(1)状态标志:CF(进位标志)、AF(辅助进位标志)、 OF(溢出标志)、 SF(符号标志)、 PF(奇偶标注)、 ZF(零标志)
在实模式下,段寄存器存放相应逻辑段的段基址
逻辑段 代码段 堆栈段 数据段 附加段 段基址存放在 偏移地址存放在 CS IP SS SP DS 根据不同的寻址方式 ES/FS/GS 选择BX、SI、DI
代码段:CS*24+IP=指令单元的物理地址 一条指令的一个字节取出后,IP自动加1,指向 下一字节。 堆栈段:SS*24+SP=栈顶单元的物理地址 数据段:DS*24+偏移地址=数据单元的物理地址
2.存储器的分段管理: 8086对存储器采用分段管理,一个单元的物 理地址由两部分组成,写成: 段基址∶偏移地 址。 10000H 一 设某单元物理地址为12345H, 个 则: 逻 12345H= 1000H *24+ 2345H 辑 段基址 偏移地址 12345H 段 逻辑地址
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章
IA-32结构微处理器与8086
2015-5-15
1
2.1 2.2
IA-32微处理器是8086的延伸 8086的功能15
2
2.1 IA-32 微处理器是8086的延伸
IA-32结构微处理器的增长基本上按摩尔定律发 展,已经经历许多代。 但从使用者(包括程序员)的角度来看,它是以 8086处理器为基础,是一个兼容的微处理器系 列,是8086在功能上和性能上的延伸。
图2-2
2015-5-15
8位微处理器的执行顺序
23
8086CPU中,取指部分BIU与执行指令部分EU 是分开的,取指和执行可以重叠进行。 在一条指令的执行过程中,可取出下一条(或 多条)指令,在指令流队列中排队。在一条指 令执行完以后可立即执行下一条指令。
图2-3
2015-5-15
8086的执行顺序
35
2)SI、DI、BP、SP 16位指针寄存器,只能以字为单位使用 可存放操作数 主要用作地址指针。
2015-5-15
36
指针寄存器的专用目的 SP(Stack Pointer)堆栈指针寄存器
与SS寄存器联用指示栈顶的偏移地址 与SS寄存器联用确定堆栈段中的某一存储单元的地址 常用于串操作。与DS联用确定数据段中某一存储单元的地址,可自 动增减量
2015-5-15
10
6. 流SIMD扩展(SSE)
自Pentium III处理器开始,在IA-32微处理器 中引进了流SIMD(单指令多数据)扩展(SSE) 技术。 SSE扩展把由Intel MMX引进的SIMD执行模式 扩展为新的128位XMM寄存器和能在包装的单 精度浮点数上执行SIMD操作。
BP(Base Pointer Register)基址指针寄存器
SI(Source Index Register)源变址寄存器
DI(Destination Index Register)目的变址寄存 器
同SI
2015-5-15
37
2.段寄存器 16位寄存器 专门存放逻辑段的起始地址 CS(Code Segment)代码段 DS(Data Segment)数据段 SS(Stack Segment)堆栈段 ES(Extra Segment)附加段
2.1.2 8086性能的提高
1. 利用流水线技术提高操作的并行性
提高性能两方面 利用超大规模集成电路的工艺与制造技术提高 芯片的主频。即减少一个时钟周期的时间。 缩短执行指令的时钟周期数。
2015-5-15
13
在8086中,利用流水线把取指令与执行指令重 叠,减少了等待取指令的时间,从而使大部分指 令的执行为四个时钟周期。 80386利用芯片内由6个能并行操作的功能部件 组成,从而使执行一条指令缩短为两个时钟周期。 80486将80386处理器的指令译码和执行部件 扩展成五级流水线,进一步增强了其并行处理能 力,在五级流水线中最多可有五条指令被同时执 行,每级都能在一个时钟周期内执行一条指令, 80486微处理器最快能够在每个CPU时钟周期 内执行一条指令。
2015-5-15
图2-1
8086的功能结构
21
8086CPU从功能上分成两大部分 总线接口单元BIU(Bus Interface Unit) 负责8086CPU与存储器之间的信息传送。
从内存的指定单元取出指令,送至指令流队列中排队。 从内存的指定区域取出执行指令时所需的操作数,传送 给EU部分去执行。
30
2015-5-15
8086的寄存器组
15
8 7
0
2015-5-15
31
1、通用寄存器 八个16位通用寄存器 AX、BX、CX、DX SI、DI、BP、SP
用途 逻辑和算术操作的操作数 用于地址计算的操作数 内存指针
32
2015-5-15
1)AX、BX、CX、DX 16位数据寄存器 存放操作数 可以字节(8位)的形式访问 AH、BH、CH、DH AL、BL、CL、DL
16
2015-5-15
在处理器芯片中实现了缓存。
目前,通常在处理器芯片上有指令和数据分开的 一级缓存与指令与数据混合的二级缓存。且缓存 的容量越来越大。从而进一步提高了处理器的性 能。
2015-5-15
17
8086是IA-32系列处理器的基础。 任一种IA-32处理器芯片在上电后,就是处在 8086的实模式。根据需要,用指令进入各种操 作模式。 学习IA-32处理器必须学习掌握8086,也只能 从8086入手。
处理器的执行环境:指汇编语言程序员看到的处 理器如何执行指令及如何存储和操作数据。 执行环境包括 内存(地址空间) 通用数据寄存器 段寄存器 标志寄存器(EFLAGES) 指令指针寄存器等
26
2015-5-15
2.3.1
基本执行环境概要
8086处理器的执行环境:在8086处理器上执行 的程序或任务所需要的一组执行指令的资源,用 于存储代码、数据和状态信息。
2015-5-15
38
使用分段存储模式时,每一个段寄存器用不同的 段选择子加载,每个段寄存器指向线性地址空间 中的不同的段。
2015-5-15
27
1、地址空间 20) 8086处理器上运行的任一任务或程序能寻址1MB(2 字节的线性地址空间。 2、基本程序执行寄存器 八个通用寄存器 四个段寄存器 标志寄存器FLAGS IP(指令指针)寄存器 3、堆栈(stack) 为支持过程或子程序调用并在过程或子程序之间传递参数 堆栈定位在内存中 4、I/O端口 支持数据在处理器和输入输出(I/O)端口之间的传送。
19
2015-5-15
2.2
8086的功能结构
8086 Intel系列的16位微处理器 16根数据线 20根地址线 可处理8位或16位数据 寻址1M字节的存储单元和64K的I/O端口。 8088是准16位微处理器,内部结构与8086相 同,但外部数据总线只有8条。
20
2015-5-15
2015-5-15 28
2.3.2
基本的程序执行寄存器
基本程序执行寄存器:为了应用程序编程所提供, 组成执行通用指令的基本执行环境。 通用指令 执行字节、字整型数的基本整数算术运算 处理程序流程控制 在字节串上操作并寻址存储器
2015-5-15
29
寄存器分组如下 1、通用寄存器 八个,用于存放操作数和指针。 2、段寄存器 最多能保存四个段选择子。 3、FLAGS(程序状态和控制)寄存器 报告正在执行的程序的状态,并允许有限 地(应用程序级)控制处理器。 4、IP(指令指针)寄存器 下一条要执行的指令的16位指针。
2015-5-15
18
从指令,从编程来说,几乎没有用汇编语言来使 用浮点指令、MMX指令与XMM指令的,都是通 过高级语言来使用这些指令的。
绝大部分程序员(除了编写操作系统代码的外), 面对IA-32处理器的指令,实际上是面对8086 指令。
因此,本书从8086入手来学习与掌握IA-32处 理器。
4
2015-5-15
1985年,Intel公司推出了第一个32位的微处 理器 -- 80386,开创了微处理器的32位时代。 32位地址能寻址4GB物理地址。
2015-5-15
5
2. 从实模式至保护模式
1981年,IBM公司刚推出IBM-PC时,主频是 5MHz,内存是64KB-128KB,没有硬盘,只 有单面单密度的软盘,到了PC/XT,才有 10MB硬盘。在这样的硬件资源下,采用的操 作系统是PC-DOS(MS-DOS)。这是单用户、 单任务的磁盘操作系统。操作系统本身没有程 序隔离、没有保护。这是DOS遭受病毒泛滥的 内因。
6
2015-5-15
随着PC机的大量普及,随着硬件性能的迅速提 高。要求有能保护操作系统核心软件的多任务操 作系统。为使这样的操作系统能在微型计算机系 统中应用与普及,要求微处理器本身为这样的操 作系统提供支持。 从80286开始,在80386中真正完善保护模式。 在保护模式下,程序运行于四个特权级。这样, 可以实现操作系统核心程序与应用程序的严格的 隔离。保护模式支持多任务机制,任务之间完全 隔离。
2015-5-15
33
数据寄存器的专用目的 AX(Accumulator)
累加器、I/O指令使用AX与外设传送信息
BX(Base)
常用作基址寄存器
循环、串指令中的计数器 与AX组合存放双字,存放I/O的端口地址
CX(Count)
DX(Data)
2015-5-15
34
2015-5-15
2015-5-15
11
奔腾4处理器又进一步扩展为流SIMD扩展2 (SSE2): 用144条新指令扩展Intel MMX技术和SSE扩 展,它包括支持: 128位SIMD整数算术操作。 128位SIMD双精度浮点操作。 128 位指令设计以支持媒体和科学应用。
2015-5-15
12
8
2015-5-15
4. 浮点支持
工程应用、图形处理、科学计算等要求浮点支持 (实数运算)。 自80486芯片开始,在IA-32微处理器中集成了 x87(及其增强)浮点单元。
IA-32结构微处理器与8086
2015-5-15
1
2.1 2.2
IA-32微处理器是8086的延伸 8086的功能15
2
2.1 IA-32 微处理器是8086的延伸
IA-32结构微处理器的增长基本上按摩尔定律发 展,已经经历许多代。 但从使用者(包括程序员)的角度来看,它是以 8086处理器为基础,是一个兼容的微处理器系 列,是8086在功能上和性能上的延伸。
图2-2
2015-5-15
8位微处理器的执行顺序
23
8086CPU中,取指部分BIU与执行指令部分EU 是分开的,取指和执行可以重叠进行。 在一条指令的执行过程中,可取出下一条(或 多条)指令,在指令流队列中排队。在一条指 令执行完以后可立即执行下一条指令。
图2-3
2015-5-15
8086的执行顺序
35
2)SI、DI、BP、SP 16位指针寄存器,只能以字为单位使用 可存放操作数 主要用作地址指针。
2015-5-15
36
指针寄存器的专用目的 SP(Stack Pointer)堆栈指针寄存器
与SS寄存器联用指示栈顶的偏移地址 与SS寄存器联用确定堆栈段中的某一存储单元的地址 常用于串操作。与DS联用确定数据段中某一存储单元的地址,可自 动增减量
2015-5-15
10
6. 流SIMD扩展(SSE)
自Pentium III处理器开始,在IA-32微处理器 中引进了流SIMD(单指令多数据)扩展(SSE) 技术。 SSE扩展把由Intel MMX引进的SIMD执行模式 扩展为新的128位XMM寄存器和能在包装的单 精度浮点数上执行SIMD操作。
BP(Base Pointer Register)基址指针寄存器
SI(Source Index Register)源变址寄存器
DI(Destination Index Register)目的变址寄存 器
同SI
2015-5-15
37
2.段寄存器 16位寄存器 专门存放逻辑段的起始地址 CS(Code Segment)代码段 DS(Data Segment)数据段 SS(Stack Segment)堆栈段 ES(Extra Segment)附加段
2.1.2 8086性能的提高
1. 利用流水线技术提高操作的并行性
提高性能两方面 利用超大规模集成电路的工艺与制造技术提高 芯片的主频。即减少一个时钟周期的时间。 缩短执行指令的时钟周期数。
2015-5-15
13
在8086中,利用流水线把取指令与执行指令重 叠,减少了等待取指令的时间,从而使大部分指 令的执行为四个时钟周期。 80386利用芯片内由6个能并行操作的功能部件 组成,从而使执行一条指令缩短为两个时钟周期。 80486将80386处理器的指令译码和执行部件 扩展成五级流水线,进一步增强了其并行处理能 力,在五级流水线中最多可有五条指令被同时执 行,每级都能在一个时钟周期内执行一条指令, 80486微处理器最快能够在每个CPU时钟周期 内执行一条指令。
2015-5-15
图2-1
8086的功能结构
21
8086CPU从功能上分成两大部分 总线接口单元BIU(Bus Interface Unit) 负责8086CPU与存储器之间的信息传送。
从内存的指定单元取出指令,送至指令流队列中排队。 从内存的指定区域取出执行指令时所需的操作数,传送 给EU部分去执行。
30
2015-5-15
8086的寄存器组
15
8 7
0
2015-5-15
31
1、通用寄存器 八个16位通用寄存器 AX、BX、CX、DX SI、DI、BP、SP
用途 逻辑和算术操作的操作数 用于地址计算的操作数 内存指针
32
2015-5-15
1)AX、BX、CX、DX 16位数据寄存器 存放操作数 可以字节(8位)的形式访问 AH、BH、CH、DH AL、BL、CL、DL
16
2015-5-15
在处理器芯片中实现了缓存。
目前,通常在处理器芯片上有指令和数据分开的 一级缓存与指令与数据混合的二级缓存。且缓存 的容量越来越大。从而进一步提高了处理器的性 能。
2015-5-15
17
8086是IA-32系列处理器的基础。 任一种IA-32处理器芯片在上电后,就是处在 8086的实模式。根据需要,用指令进入各种操 作模式。 学习IA-32处理器必须学习掌握8086,也只能 从8086入手。
处理器的执行环境:指汇编语言程序员看到的处 理器如何执行指令及如何存储和操作数据。 执行环境包括 内存(地址空间) 通用数据寄存器 段寄存器 标志寄存器(EFLAGES) 指令指针寄存器等
26
2015-5-15
2.3.1
基本执行环境概要
8086处理器的执行环境:在8086处理器上执行 的程序或任务所需要的一组执行指令的资源,用 于存储代码、数据和状态信息。
2015-5-15
38
使用分段存储模式时,每一个段寄存器用不同的 段选择子加载,每个段寄存器指向线性地址空间 中的不同的段。
2015-5-15
27
1、地址空间 20) 8086处理器上运行的任一任务或程序能寻址1MB(2 字节的线性地址空间。 2、基本程序执行寄存器 八个通用寄存器 四个段寄存器 标志寄存器FLAGS IP(指令指针)寄存器 3、堆栈(stack) 为支持过程或子程序调用并在过程或子程序之间传递参数 堆栈定位在内存中 4、I/O端口 支持数据在处理器和输入输出(I/O)端口之间的传送。
19
2015-5-15
2.2
8086的功能结构
8086 Intel系列的16位微处理器 16根数据线 20根地址线 可处理8位或16位数据 寻址1M字节的存储单元和64K的I/O端口。 8088是准16位微处理器,内部结构与8086相 同,但外部数据总线只有8条。
20
2015-5-15
2015-5-15 28
2.3.2
基本的程序执行寄存器
基本程序执行寄存器:为了应用程序编程所提供, 组成执行通用指令的基本执行环境。 通用指令 执行字节、字整型数的基本整数算术运算 处理程序流程控制 在字节串上操作并寻址存储器
2015-5-15
29
寄存器分组如下 1、通用寄存器 八个,用于存放操作数和指针。 2、段寄存器 最多能保存四个段选择子。 3、FLAGS(程序状态和控制)寄存器 报告正在执行的程序的状态,并允许有限 地(应用程序级)控制处理器。 4、IP(指令指针)寄存器 下一条要执行的指令的16位指针。
2015-5-15
18
从指令,从编程来说,几乎没有用汇编语言来使 用浮点指令、MMX指令与XMM指令的,都是通 过高级语言来使用这些指令的。
绝大部分程序员(除了编写操作系统代码的外), 面对IA-32处理器的指令,实际上是面对8086 指令。
因此,本书从8086入手来学习与掌握IA-32处 理器。
4
2015-5-15
1985年,Intel公司推出了第一个32位的微处 理器 -- 80386,开创了微处理器的32位时代。 32位地址能寻址4GB物理地址。
2015-5-15
5
2. 从实模式至保护模式
1981年,IBM公司刚推出IBM-PC时,主频是 5MHz,内存是64KB-128KB,没有硬盘,只 有单面单密度的软盘,到了PC/XT,才有 10MB硬盘。在这样的硬件资源下,采用的操 作系统是PC-DOS(MS-DOS)。这是单用户、 单任务的磁盘操作系统。操作系统本身没有程 序隔离、没有保护。这是DOS遭受病毒泛滥的 内因。
6
2015-5-15
随着PC机的大量普及,随着硬件性能的迅速提 高。要求有能保护操作系统核心软件的多任务操 作系统。为使这样的操作系统能在微型计算机系 统中应用与普及,要求微处理器本身为这样的操 作系统提供支持。 从80286开始,在80386中真正完善保护模式。 在保护模式下,程序运行于四个特权级。这样, 可以实现操作系统核心程序与应用程序的严格的 隔离。保护模式支持多任务机制,任务之间完全 隔离。
2015-5-15
33
数据寄存器的专用目的 AX(Accumulator)
累加器、I/O指令使用AX与外设传送信息
BX(Base)
常用作基址寄存器
循环、串指令中的计数器 与AX组合存放双字,存放I/O的端口地址
CX(Count)
DX(Data)
2015-5-15
34
2015-5-15
2015-5-15
11
奔腾4处理器又进一步扩展为流SIMD扩展2 (SSE2): 用144条新指令扩展Intel MMX技术和SSE扩 展,它包括支持: 128位SIMD整数算术操作。 128位SIMD双精度浮点操作。 128 位指令设计以支持媒体和科学应用。
2015-5-15
12
8
2015-5-15
4. 浮点支持
工程应用、图形处理、科学计算等要求浮点支持 (实数运算)。 自80486芯片开始,在IA-32微处理器中集成了 x87(及其增强)浮点单元。