微机原理与接口技术 第二版 教学课件 ppt 作者 周明德 第2章 IA-32结构微处理器与8086
第2章 IA-32结构微处理器与8086,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芯片开始,在IA-32微处理器中集成了x87(及其增强)浮点单元。,5MMX技术,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负责指令的执行。,图2-1 8086(8088)的功能结构,图2-2 8位微处理器的执行顺序,图2-3 8086的执行顺序,2.3 8086微处理器的执行环境,2.3.1 基本执行环境概要 在8086微处理器上执行的程序或任务都有一组执行指令的资源用于存储代码、数据和状态信息。,地址空间 基本程序执行寄存器 堆栈(Stack) I/O端口,图2-4 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寄存器段中的数据指针、串操作的源指针; DI 指向ES寄存器段中的数据(目标)的指针、串操作的目标指针;图2-5 8086通用寄存器; SP 堆栈指针(在SS段中); BP 堆栈上数据指针(在SS段中)。,图2-5 8086通用寄存器,2段寄存器,段寄存器(CS、DS、SS和ES)保存16位段选择子。,图2-6 在分段存储模式中的段寄存器,3FLAGS寄存器,16位FLAGS寄存器包含一组状态标志、一个控制标志一个系统标志。,图2-7 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, 0FFB 即,D7位向前有进位,故运算后CF = 1,但运算的结果未小于128,此时,溢出标志位OF = 0。, 符号标志(Sign Flag,SF) 奇偶标志(Parity Flag,PF) 零标志(Zero Flag,ZF),(2)控制标志, 方向标志(Direction Flag,DF) 中断允许标志(Interrupt-enable Flag,IF) 追踪标志(Trace Flag,TF),4指令指针,指令指针(IP)寄存器包含下一条要执行的指令在当前码段中的偏移。,2.3.3 存储器组织,图2-8 8086物理地址的形成,图2-9 8086的存储器结构,图2-10 8086的存储器再定位,