2.1 IA-32结构微处理器是8086的延伸
2.1.1 8086功能扩展
1. 从16位扩展为32位
- 8086是16为微处理器
- 16位能表示的数的范围是十分 有限的,用16位作为地址,只能表示64KB
- 1985年,Intel公司推出了第一个32位微处理器—80386
- 32位,无论从能表示的数的范围,还是能寻址的物理地址,都得到了极大的扩展
- 32位地址能寻址4GB物理地址
2.从实模式至保护模式
- 从80286开始,在80386中真正完善保护模式
3.片内存储管理单元(MMU)
32位地址,可寻址4GB物理地址
大多数PC的物理内存配置远小于4GB
但应用程序却可能需要庞大的地址空间
因此,在操作系统提供了虚拟存储器管理机制,而这要求硬件支持
4.浮点支持
工程应用、图形处理、科学计算机等要求浮点支持(实数运算)
因此,自80486芯片开始,在AI-32微处理器中集成了x87(及其增强)浮点单元
5.MMX技术
IA-32处理器中增加了MMX技术及相应的指令
6.流SIMD扩展(SSE)
自Pentium III处理器开始,在IA-32微处理器中引进了流SIMD(单指令多数据)扩展(SSE)技术
2.1.2 8086性能的提高
1.利用流水线技术提高操作的并行性
2.引入片内缓存(Cache)
2.2 8086的功能结构
- 8086 CPU从功能上来说分成两大部分:总线接口单元(Bus Interface Unit,BIU)和执行单元(Execution Unit,EU)
- BIU负责8086 CPU与存储器之间的信息传送
- EU负责指令的执行
8086(8088)的功能结构
8位处理器的执行顺序
8086的执行顺序
2.3 8086微处理器的执行环境
在8086位处理器上执行的程序或任务都有一组的资源用于存储代码、数据和状态信息
- 地址空间
- 基本程序执行寄存器
- 堆栈(Stack)
- I/O端口
8086微处理器基本执行环境
2.3.2基本的程序执行寄存器
-
通用寄存器,这八个寄存器能用于存放操作数和指针
-
段寄存器,这些寄存器最多能保存四个段选择子
-
FLAGS(程序状态和控制)寄存器,FLAGS寄存器报告正在执行的程序状态,并许有限的(应用程序设计)控制处理器
-
IP(指令指针)寄存器。IP寄存器包括下一条执行的指令的16位指针
1.通用寄存器
八个16位通用寄存器AX、BX、CX、DX、SI、DI、BP和SP用于处理一下项:
- 逻辑和算术操作的操作数
- 用于地址计算的操作数
- 内存指针
以下是一些特殊使用的小结:
- AX—操作数和结果数据的累加器
- BX—在DS段中数据的指针
- CX—串和循环操作的计数器
- DX—I/O指针
- SI—指向DS寄存器段中的数据指针、串操作的源指针、串操作的目的指针
SP- 堆栈指针(在SS段中)
BP—堆栈上数据指针(在SS段中)
8086通用寄存器
2.段寄存器
段寄存器(CS、DS、SS和ES)保存16位段选择子
在分段存储模式中的段寄存器
3.FLAGS寄存器
16位FLAGS寄存器包含一组状态标志、一个控制标志、一个系统标志
FLAGS寄存器
(1)状态标志
FLAGS寄存器的状态标志(位0、2、4、6、7和11)指示算术指令
①进位标志(Carry Flag,CF)
②辅助进位标志(Auxitiary Carry Flag,AF)
③溢出标志(Overflow Flag,OF)
例如,在字节运算时:
MOV AL,64H
ADD AL,64H
即
D7位向前有进位。故运算后CF=0,但运算的结果超过了+127,此时,溢出标志位OF=1
在字节运算时:
MOV AL,0ABH
ADD AL,OFFH
即
D7位向前有进位,故运算后CF=1,但运算结果未小于-128,此时,溢出标志位OF=0
④符号标志(Sign Flag,SF)
⑤奇偶标志(Parity Flag,PF)
⑥零标志(Zero Flag)
(2)控制标志
①方向标志(Direction Flag,DF)
②中断允许标志(Interrupt-enable Flag,IF)
③追踪标志(Trace Flag,TF)
4.指令指针
指令指针(IP)寄存器包含下一条要执行的指令在当前码段中的偏移
网友评论