《第3章 微处理器(精简).ppt》由会员分享,可在线阅读,更多相关《第3章 微处理器(精简).ppt(191页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第3 3章章 8086/80888086/8088微处理器微处理器1主要内容n微处理器的一般结构;微处理器的一般结构;n8086微处理器的组成、引脚功能;微处理器的组成、引脚功能;n8086的内部寄存器和标志位;的内部寄存器和标志位;n8086的存储器组织;的存储器组织;n80X86系列微处理器的结构特点。系列微处理器的结构特点。2第第3章章 8086/8088微处理器微处理器主要内容:主要内容:n3.1 8086/8088微处理器概述微处理器概述n3.2 8086/8088的编程结构的编程结构n3.3 8086/8088的存储器组织的存储器组织n3.4 8086/8088的外部结构的外部结
2、构n3.5 8086/8088的基本时序的基本时序33.1 8086/8088微处理器概述微处理器概述n8088、8086基本类似基本类似n16位位CPU、AB宽度宽度20位位n差别:差别:n指令预取队列:指令预取队列:8088为为4字节,字节,8086为为6字节字节n数据总线引脚:数据总线引脚:8088有有8根,根,8086有有16根根n8088为准为准16位位CPU,内部,内部DB为为16位,但外部仅位,但外部仅为为8位,位,16位数据要分两次传送。位数据要分两次传送。n指令系统完全相同,芯片内部逻辑结构、芯片引指令系统完全相同,芯片内部逻辑结构、芯片引脚有个别差异,均具有脚有个别差异,均
3、具有20位地址线位地址线,寻址能力,寻址能力达达到到1MB空间空间。4 8086/8088微处理器结构微处理器结构 AH ALBH BLCH CLDH DLSPBPDISI通通 用用 寄寄 存存 器器AXBXCXDXALU数据总线(数据总线(16位)位)运算寄存器运算寄存器ALU标志寄存器标志寄存器EU 控控制电路制电路执行部件执行部件EUCSDSSSESIP内部暂存器内部暂存器1 2 3 4 5 6数据总线数据总线8088:8位位8086:16位位输入输入/输输出出 控制控制电路电路地址总线地址总线20位位指令队列缓冲器指令队列缓冲器80888086Q总线总线(8位)位)指令指针指令指针段段
4、寄寄存存器器外部外部总线总线总线接口部件总线接口部件BIUBIU地址加法器地址加法器5指令预取队列指令预取队列(IPQ)的的一般执行过程:一般执行过程:指令的一般执行过程:指令的一般执行过程:取指令取指令 指令译码指令译码 读取操作数读取操作数 执行指令执行指令 存放结果存放结果3.1 8086/8088微处理器概述微处理器概述6指令流水线指令流水线取指令取指令指令指令译码译码取操取操作数作数执行执行指令指令存放存放结果结果 CPU执行一条指令的过程类似于工厂生产流水线,执行一条指令的过程类似于工厂生产流水线,被分解为多个小的步骤,称为指令流水线。被分解为多个小的步骤,称为指令流水线。数据和程
5、数据和程序指令序指令控制器的控制器的调度分配调度分配ALU等等 功能部件功能部件处理后的处理后的数据数据存储器存储器输出输出7指令流水线指令流水线n指令流水线有两种运作方式:指令流水线有两种运作方式:n串行方式串行方式:取指令取指令和和执行指令执行指令在不同的时刻按顺序执行在不同的时刻按顺序执行n并行方式并行方式:取指令取指令和和执行指令执行指令可同时执行,需要有能并可同时执行,需要有能并行工作的硬件的支持。行工作的硬件的支持。8串行工作方式串行工作方式n8086以前的以前的CPU采用串行工作方式采用串行工作方式取指令取指令1执行执行1取指令取指令2执行执行2CPUBUS忙忙 碌碌忙忙 碌碌取
6、指令取指令3执行执行3忙忙 碌碌空闲空闲空闲空闲空闲空闲t t1 1t t0 0t t2 2t t3 3t t4 4t t5 56个周期执行了个周期执行了3条指令条指令9n nCPUCPU执行指令时总线处于空闲状态;执行指令时总线处于空闲状态;执行指令时总线处于空闲状态;执行指令时总线处于空闲状态;n nCPUCPU访问存储器访问存储器访问存储器访问存储器(存取数据或指令存取数据或指令存取数据或指令存取数据或指令)时要等待总时要等待总时要等待总时要等待总线操作的完成;线操作的完成;线操作的完成;线操作的完成;缺点:缺点:缺点:缺点:CPUCPU无法全速运行无法全速运行无法全速运行无法全速运行
7、解决:解决:解决:解决:总线空闲时预取指令,使总线空闲时预取指令,使总线空闲时预取指令,使总线空闲时预取指令,使CPUCPU需要指令需要指令需要指令需要指令时能立刻得到时能立刻得到时能立刻得到时能立刻得到串行工作方式串行工作方式10并行工作方式并行工作方式n8086CPU采用并行工作方式采用并行工作方式取指令取指令1取指令取指令2取指令取指令3取指令取指令4执行执行1执行执行2执行执行3BUS忙碌忙碌执行执行4CPUt t1 1t t0 0t t2 2t t3 3t t4 4t t5 5取指令取指令5执行执行5忙碌忙碌忙碌忙碌忙碌忙碌忙碌忙碌忙碌忙碌6个周个周期执行了期执行了5条指令条指令11
8、并行操作的前提并行操作的前提n取指令部件和指令执行部件要能够取指令部件和指令执行部件要能够并行工作并行工作;n各部件执行时间基本相同,否则需再细分;各部件执行时间基本相同,否则需再细分;n取指令部件取出的指令要能取指令部件取出的指令要能暂存在暂存在CPU内部内部某个某个地方;地方;n指令执行部件在需要时总能立即获得暂存的指令指令执行部件在需要时总能立即获得暂存的指令n需要解决转移指令问题。需要解决转移指令问题。128086 CPU的特点的特点n采用并行流水线工作方式:采用并行流水线工作方式:通过设置指令预取队列(通过设置指令预取队列(IPQ)实现)实现n对内存空间实行分段管理:对内存空间实行分
9、段管理:将内存分段并设置地址段寄存器,以实现对将内存分段并设置地址段寄存器,以实现对1MB空间的寻址。空间的寻址。n支持多处理器系统:支持多处理器系统:8087 FPU138086的流水线操作的流水线操作 8086 CPU包括两大部分:包括两大部分:EU和和BIUnBIU不断地从存储器取指令送入不断地从存储器取指令送入IPQ,EU不断地从不断地从IPQ取出指令执行取出指令执行nEU和和BIU构成了一个简单的构成了一个简单的2工位流水线工位流水线n指令预取队列指令预取队列IPQ是实现流水线操作的关键是实现流水线操作的关键(类似于工厂流水线的传送带)(类似于工厂流水线的传送带)148086的流水线
10、操作的流水线操作新型新型CPU将一条指令划分成更多的阶段,以便将一条指令划分成更多的阶段,以便可以同时执行更多的指令。可以同时执行更多的指令。n PIII为为14个阶段个阶段n P4为为20个阶段个阶段(超级流水线超级流水线)15超级流水线和超标量结构超级流水线和超标量结构超级流水线超级流水线n指令的执行步骤分得更细,流水线长度更长指令的执行步骤分得更细,流水线长度更长 例如,例如,PIII为为14个阶段,个阶段,P4为为20个阶段个阶段n有利于提高主频有利于提高主频n转移分支时的效率?转移分支时的效率?n解决:分支预测、推测执行解决:分支预测、推测执行n超标量结构超标量结构n对流水线中的关键
11、对流水线中的关键“岗位岗位”设置多个相同的执行单设置多个相同的执行单元元多个工人完成一道工序多个工人完成一道工序nP4:倍频:倍频ALU2,FPU2(其中一个为并行(其中一个为并行FPU)nAthlon XP:ALU6,并行,并行FPU3组组16结论结论n8086微处器指令预取队列的存在使微处器指令预取队列的存在使EU和和BIU两个部分可同时进行工作,从而两个部分可同时进行工作,从而n提高了提高了CPU的效率;的效率;n降低了对存储器存取速度的要求降低了对存储器存取速度的要求178086CPU的两种工作模式的两种工作模式n8086可工作于两种模式:可工作于两种模式:n最小模式和最大模式最小模式
12、和最大模式n最小模式最小模式为单处理机模式,控制信号较少,一为单处理机模式,控制信号较少,一般可不必接总线控制器。般可不必接总线控制器。n最大模式最大模式为多处理机模式,控制信号较多,须为多处理机模式,控制信号较多,须通过通过总线控制器总线控制器与总线相连。与总线相连。18最小模式下的连接示意图最小模式下的连接示意图8086CPU控制总线控制总线数据总线数据总线地址总线地址总线地址地址锁存器锁存器数据总线数据总线缓冲器缓冲器ALE时钟发时钟发生生 器器8284A地址地址/数据数据82868282Vcc MN/MXDENDT/R19最大模式下的连接示意图最大模式下的连接示意图8088CPU数据总
13、线数据总线地址总线地址总线地址地址锁存器锁存器数据总线数据总线缓冲器缓冲器时钟发时钟发生生 器器总总 线线控制器控制器控制总线控制总线8284A8288ALECLK MN/MX82828286GND208288总线控制器总线控制器n最大模式下,最大模式下,8288总线控制器产生某些总线控制器产生某些CPU不再提供的控制信号。不再提供的控制信号。n8288产生的信号包括:产生的信号包括:n独立的独立的I/O控制命令:控制命令:IORC、IOWCn独立的存储器控制命令:独立的存储器控制命令:MRDC、MWTCn中断响应信号和总线控制信号中断响应信号和总线控制信号n以上三组信号取代了最小模式的:以上
14、三组信号取代了最小模式的:nALE、WR、IO/M、DT/R、DEN、INTA218288总线控制器逻辑框图总线控制器逻辑框图控制控制逻辑逻辑命令命令信号信号产生器产生器控制控制信号信号产生器产生器状态状态译码器译码器S0S1S2CLKAENCENIOBDT/RDENMCE/PDENALEMCE/PDEN:PIC主控级连主控级连/IO设备数据输出控制信号设备数据输出控制信号 IOB=0时,时,PIC主控级连;否则,用于允许主控级连;否则,用于允许I/O总线收发器总线收发器MRDC(MEMR)MWTC(MEMW)AMWCIORC (IOR)IOWC(IOW)AIOWCINTA (INTA)22主
15、要内容:主要内容:n3.2.1 8086的功能部件的功能部件n3.2.2 8086的总线周期的总线周期3.2 8086/8088的编程结构的编程结构23n编程结构:编程结构:指从程序员和使用者的角度看到的指从程序员和使用者的角度看到的结构。结构。n8086编程结构与编程结构与CPU内部的内部的物理结构物理结构和和实际实际布局布局是有区别的。是有区别的。n了解了解8086编程结构,可以掌握编程结构,可以掌握CPU的工作性的工作性能和使用方法。能和使用方法。3.2 8086/8088的编程结构的编程结构24 8086/8088微处理器结构微处理器结构 AH ALBH BLCH CLDH DLSPB
16、PDISI通通 用用 寄寄 存存 器器AXBXCXDXALU数据总线(数据总线(16位)位)运算寄存器运算寄存器ALU标志寄存器标志寄存器EU 控控制电路制电路执行部件执行部件EUCSDSSSESIP内部暂存器内部暂存器1 2 3 4 5 6数据总线数据总线8088:8位位8086:16位位输入输入/输输出出 控制控制电路电路地址总线地址总线20位位指令队列缓冲器指令队列缓冲器80888086Q总线总线(8位)位)指令指针指令指针段段寄寄存存器器外部外部总线总线总线接口部件总线接口部件BIUBIU地址加法器地址加法器25n从功能上分,从功能上分,8086内部由两部分组成:内部由两部分组成:总线
17、接口部件(总线接口部件(BIU)执行部件(执行部件(EU)n两个单元相互独立,分别完成各自操作两个单元相互独立,分别完成各自操作n两个单元可以两个单元可以并行执行并行执行,实现指令取指和执行,实现指令取指和执行的流水线操作。的流水线操作。3.2.1 8086的功能部件的功能部件26一、一、总线接口总线接口部件部件BIUn功能:功能:n从内存中取指令送入指令预取队列从内存中取指令送入指令预取队列n负责与内存或输入负责与内存或输入/输出接口之间的数据传送输出接口之间的数据传送n在执行转移程序时,在执行转移程序时,BIU使指令预取队列复位,使指令预取队列复位,从指定的新地址取指令,并立即传给执行单元
18、从指定的新地址取指令,并立即传给执行单元执行。执行。27总线接口部件包括总线接口部件包括 4个段地址寄存器个段地址寄存器CS DS ES SS 16位的指令指针寄存器位的指令指针寄存器IP 20位的地址加法器位的地址加法器 6字节的指令队列字节的指令队列 输入输入/输出控制电路输出控制电路一、总线接口部件一、总线接口部件BIU28用于存放逻辑段的段基地址(简称段地址)用于存放逻辑段的段基地址(简称段地址)nCS:代码段寄存器。代码段存放指令代码代码段寄存器。代码段存放指令代码nDS:数据段寄存器数据段寄存器 nES:附加段寄存器附加段寄存器nSS:堆栈段寄存器:指示堆栈区域的位置堆栈段寄存器:
19、指示堆栈区域的位置这两个段存放操作数这两个段存放操作数堆栈段堆栈段SS数据段数据段DS/ES代码段代码段CS1.段寄存器段寄存器292.指令指针寄存器指令指针寄存器(Instruction Pointer)n nIPIP:指令指针寄存器,其内容为指令指针寄存器,其内容为指令指针寄存器,其内容为指令指针寄存器,其内容为下一条要执行的下一条要执行的下一条要执行的下一条要执行的指令的偏移地址;指令的偏移地址;指令的偏移地址;指令的偏移地址;n与代码段寄存器与代码段寄存器CS联用,联用,确定下一条指令的物理确定下一条指令的物理地址;地址;n计算机通过计算机通过CS:IP寄存器寄存器来取指令,从而控制指
20、来取指令,从而控制指令序列的执行流程;令序列的执行流程;nIP寄存器是一个专用寄存器,用户不能直接访问寄存器是一个专用寄存器,用户不能直接访问30二、执行部二、执行部件件EUn功能功能:执行指令执行指令 从指令队列中取指令代码从指令队列中取指令代码 译码译码 在在ALU中完成数据的运算中完成数据的运算 运算结果的运算结果的特征保存在标志寄存器特征保存在标志寄存器FLAGS中。中。31执行部件包括执行部件包括 4个通用寄存器个通用寄存器AX BX CX DX 4个专用寄存器个专用寄存器BP SP SI DI 1个标志寄存器个标志寄存器FLAGS/PSW 算术逻辑单元算术逻辑单元ALU(运算器运算
21、器)EU部分控制电路部分控制电路二、执行部件二、执行部件EU32n用途:存放用途:存放临时数据临时数据和存放和存放运算操作数运算操作数n每个均为每个均为16位,但又可分为位,但又可分为2个个8位寄存器,位寄存器,即:即:nAX AH,ALnBX BH,BLnCX CH,CLnDX DH,DL例如:若例如:若(AX)1234H,则则(AH)12H,(AL)34H1.通用寄存器通用寄存器33nAX:累加器累加器n所有所有I/O指令都通过指令都通过AX(AL)与接口传送信)与接口传送信息息;n中间运算结果也多放于中间运算结果也多放于AX(AL)中;)中;n乘除法指令的一个操作数必须在乘除法指令的一个
22、操作数必须在AX(AL)中。)中。nBX:基址寄存器基址寄存器n在在间接寻址间接寻址中用于存放操作数的基地址。中用于存放操作数的基地址。1.通用寄存器通用寄存器34nCX:计数寄存器计数寄存器n用于在循环指令或串操作指令中存放计数用于在循环指令或串操作指令中存放计数值。值。nDX:数据寄存器数据寄存器n在在间接寻址间接寻址的的I/O指令中存放指令中存放I/O端口地址;端口地址;n在在32位乘除法运算时,存放高位乘除法运算时,存放高16位数。位数。1.通用寄存器通用寄存器35nSP:堆栈指针寄存器:堆栈指针寄存器n其内容为其内容为堆栈堆栈栈顶的偏移地址栈顶的偏移地址;n任何堆栈操作后,任何堆栈操
23、作后,SP都会自动增都会自动增/减量。减量。nBP:基址指针寄存器基址指针寄存器n在在间接寻址间接寻址中用于存放操作数的基地址;中用于存放操作数的基地址;n常用于访问存放在堆栈中的数据。常用于访问存放在堆栈中的数据。2.地址指针寄存器地址指针寄存器36BX与与BP在应用上的区别在应用上的区别n作为通用寄存器,二者均可用于存放数据;作为通用寄存器,二者均可用于存放数据;n作为基址寄存器,默认情况下:作为基址寄存器,默认情况下:n用用BX作为指针所访问的数据在作为指针所访问的数据在数据段数据段(DS段段)n用用BP作为指针所访问的数据在作为指针所访问的数据在堆栈段堆栈段(SS段段)注:间接寻址时注
24、:间接寻址时 仅仅BX、BP、SI、DI可用于存储器寻址;可用于存储器寻址;仅仅DX可用于可用于I/O寻址。寻址。37nSI:源变址寄存器,用于访问源操作数源变址寄存器,用于访问源操作数nDI:目标变址寄存器,用于访问目的操作数目标变址寄存器,用于访问目的操作数n常用于操作数的常用于操作数的间接寻址间接寻址或或变址寻址变址寻址。n在串操作指令中,在串操作指令中,SI存放源操作数的偏移地存放源操作数的偏移地址,而址,而DI存放目标操作数的偏移地址。存放目标操作数的偏移地址。3.变址寄存器变址寄存器384.标标志志寄存器寄存器(Flags Register)n n标志寄存器也称为标志寄存器也称为标
25、志寄存器也称为标志寄存器也称为FLAGSFLAGS,还称程序状态字,还称程序状态字,还称程序状态字,还称程序状态字PSWPSW寄存器寄存器寄存器寄存器。用于存放反映处理器和运行程序用于存放反映处理器和运行程序执行结果状态的状态标志和控制标志。执行结果状态的状态标志和控制标志。n n状态标志状态标志状态标志状态标志:用来记录程序运行结果的状态信用来记录程序运行结果的状态信息,许多指令的执行都将自动地改变它。息,许多指令的执行都将自动地改变它。n n控制标志控制标志控制标志控制标志:可由用户根据需要用指令进行设可由用户根据需要用指令进行设置,用于控制处理器的具体工作方式。置,用于控制处理器的具体工
26、作方式。39OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0控制控制 反映结果状态反映结果状态反应运算过程反应运算过程4.标志寄存器标志寄存器(Flags Register)n n6 6个状态标志位个状态标志位个状态标志位个状态标志位(CF(CF,SFSF,AFAF,PFPF,OFOF,ZF)ZF)n n3 3个控制标志位个控制标志位个控制标志位个控制标志位(IF(IF,TFTF,DF)DF)401)符号标志符号标志SF(Sign Flag)n运算结果最高位为运算结果最高位为1,则,则SF=1;否则否则SF=0。例如:例如:3AH+7CHB6H 最高位最高位D71:S
27、F=186H+7CH00H 最高位最高位D70:SF=0有符号数利用最高有效位(有符号数利用最高有效位(MSB)来表示它的来表示它的符号。所以,运算结果的符号。所以,运算结果的MSB与符号标志与符号标志SF相相一致。一致。412)零标志零标志ZF(Zero Flag)n若运算结果为全若运算结果为全0,则,则ZF=1,否则否则ZF=0。例如:例如:3AH+7CHB6H 结果不是零:结果不是零:ZF=086H+7CH00H 结果是全零:结果是全零:ZF=1注意:注意:ZF为为1表示的结果是表示的结果是0423)进位标志进位标志CF(Carry Flag)n当运算结果的最高有效位有进位(加法)或借当
28、运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置位(减法)时,进位标志置1,即,即CF=1;否否则则 CF=0。例如:以例如:以8位运算为例,位运算为例,8088中为中为16位位3AH+7CHB6H 没有进位:没有进位:CF=0AAH+7CH26H 有进位:有进位:CF=1434)奇偶标志奇偶标志PF(Parity Flag)n当运算结果最低字节中当运算结果最低字节中“1”的个数为零或偶的个数为零或偶数时,数时,PF=1;否则否则PF=0(奇校验)。奇校验)。例如:例如:3AH+7CHB6H10110110B 结果中有结果中有5个个1,是奇数,则是奇数,则 PF=0 注意:注意:
29、PF标志仅反映最低标志仅反映最低8位中位中“1”的个数的个数是偶或奇,即使是进行是偶或奇,即使是进行16位字操作。位字操作。445)溢出标志溢出标志OF(Overflow Flag)n若算术运算的结果有溢出,则若算术运算的结果有溢出,则OF=1;否则否则 OF0n例如:例如:3AH+7CHB6H 产生溢出:产生溢出:OF=1AAH+7CH26H 没有溢出:没有溢出:OF=0问题:问题:什么是溢出?溢出和进位有什么区别?什么是溢出?溢出和进位有什么区别?处理器怎么处理,程序员如何运用?处理器怎么处理,程序员如何运用?如何判断是否溢出?如何判断是否溢出?45什么是溢出什么是溢出n“溢出溢出”针对针
30、对有符号数有符号数n处理器内部以补码表示有符号数处理器内部以补码表示有符号数8位表示范围是:位表示范围是:-128 +127 16位表示范围是:位表示范围是:-32768+32767 n如果运算结果超出了这个范围,就是产生了溢如果运算结果超出了这个范围,就是产生了溢出,溢出发生时,说明有符号数的运算结果不正出,溢出发生时,说明有符号数的运算结果不正确确46什么是溢出什么是溢出n以以8位运算为例:位运算为例:3AH+7CHB6H即即 58+124182结果超出结果超出-128127故溢出,所以故溢出,所以OF=1另一方面,补码另一方面,补码B6H表达真值是表达真值是-74,显然,显然运算结果也不
31、正确。运算结果也不正确。47溢出标志和进位标志的区别溢出标志和进位标志的区别n溢出标志溢出标志OF和和进位标志进位标志CF是两个意义不同是两个意义不同的标志;的标志;n进位标志表示无符号数运算结果是否超出范进位标志表示无符号数运算结果是否超出范围,运算结果仍然围,运算结果仍然正确正确;n溢出标志表示有符号数运算结果是否超出范溢出标志表示有符号数运算结果是否超出范围,运算结果已经围,运算结果已经不正确不正确。请看例子请看例子48n例例3:以:以8位减运算位例,判断位减运算位例,判断CF标志和标志和OF标志:标志:无符号运算无符号运算A8H-67H=168-103=65 够减够减CF=0有符号运算
32、有符号运算A8H-67H=-88-103=-1921010 1000 0110 01110100 0001-192超过表示范围:超过表示范围:OF=1溢出和进位的对比溢出和进位的对比50n例例4:以:以8位加运算位例,判断位加运算位例,判断CF标志和标志和OF标志:标志:无符号运算无符号运算A8H+67H=168+103=271有进位有进位CF=1有符号运算有符号运算A8H+67H=-88+103=15 1010 1000+0110 011110000 1111有进有出有进有出/无进无出无进无出 不溢出不溢出有进无出有进无出/无进有出无进有出 溢出溢出有进有出:有进有出:OF=0溢出和进位的对
33、比溢出和进位的对比51如何运用溢出和进位如何运用溢出和进位n处理器对两个操作数进行运算时,处理器对两个操作数进行运算时,n根据无符号运算有无进位来设置进位标志根据无符号运算有无进位来设置进位标志CF;n根据有符号运算是否超出表示范围来设置溢出根据有符号运算是否超出表示范围来设置溢出标志标志OF。n应该利用哪个标志,则由程序员来决定。应该利用哪个标志,则由程序员来决定。n如果参加运算的操作数是无符号数,用户应该如果参加运算的操作数是无符号数,用户应该关心进位标志关心进位标志n如果参加运算的操作数是有符号数,用户应该如果参加运算的操作数是有符号数,用户应该关心溢出标志。关心溢出标志。526)辅助进
34、位标志辅助进位标志AF(Auxiliary Carry Flag)n运算时运算时D3位(低半字节)有进位或借位时,位(低半字节)有进位或借位时,AF=1;否则否则AF=0。例如:例如:3AH+7CHB6H D3向前有进位:向前有进位:AF=1这个标志主要由处理器内部使用,用于十进制算这个标志主要由处理器内部使用,用于十进制算术运算的调整,用户一般不必关心。术运算的调整,用户一般不必关心。537)方向标志方向标志DF(Direction Flag)n用于串操作指令中,控制地址的变化方向:用于串操作指令中,控制地址的变化方向:n设置设置DF0,串操作后存储器地址自动增量(增址)串操作后存储器地址自
35、动增量(增址)n设置设置DF1,串操作后存储器地址自动减量(减址)串操作后存储器地址自动减量(减址)nCLD 指令复位方向标志:指令复位方向标志:DF0nSTD 指令置位方向标志:指令置位方向标志:DF154SIDIDF=0DS:SIES:DI低地址低地址高地址高地址SIDIDISI数据段数据段附加段附加段.SIDIDF=1DS:SIES:DI低地址低地址高地址高地址SIDIDISI数据段数据段附加段附加段.正向传送正向传送反向传送反向传送SBUFDBUFDBUFSBUF方向标志方向标志DF的控制作用的控制作用0 30 70 80 30 70 80 30 70 80 30 70 8558)中断
36、允许标志中断允许标志IF(Interrupt-enable Flag)n用于控制外部用于控制外部可屏蔽中断可屏蔽中断是否可以被处理器响应是否可以被处理器响应n设置设置IF1,则允许中断;则允许中断;n设置设置IF0,则禁止中断。则禁止中断。nCLI 指令复位中断标志:指令复位中断标志:IF0nSTI 指令置位中断标志:指令置位中断标志:IF1569)跟踪标志跟踪标志TF(Trap Flag)n用于控制处理器是否进入单步执行方式:用于控制处理器是否进入单步执行方式:n设置设置TF0,处理器正常工作;处理器正常工作;n设置设置TF1,处理器每执行一条指令就中断一次,处理器每执行一条指令就中断一次,
37、中断编号为中断编号为 1(称单步中断)(称单步中断)TF 也被称为单步标也被称为单步标志。志。n单步执行和单步调试单步执行和单步调试n利用单步中断可对程序进行利用单步中断可对程序进行逐条指令的调试逐条指令的调试。n这种逐条指令调试程序的方法就是这种逐条指令调试程序的方法就是单步调试单步调试。57例如例如:MOV AL,4FH 0100 1111 ADD AL,31H +0011 0001 1000 0000则对标志影响为:则对标志影响为:CF=0D7未产生进位;未产生进位;PF=01的个数为奇数;的个数为奇数;AF=1D3有进位;有进位;ZF=0结果非零;结果非零;SF=1最高位为最高位为1;
38、OF=1结果为结果为128标志寄存器标志寄存器FLAGS015标志寄存器应用举例标志寄存器应用举例588086结构特点小结结构特点小结n有有EU和和BIU两个独立的、同时运行的部件两个独立的、同时运行的部件n二者通过二者通过IPQ构成一个两工位流水线构成一个两工位流水线n指令被指令被EU和和BIU按流水线方式处理:按流水线方式处理:n提高了提高了CPU的运行速度;的运行速度;n提高了提高了CPU的执行效率;的执行效率;n降低了对存储器存取速度的要求降低了对存储器存取速度的要求。598086寄存器概貌寄存器概貌SPIPFLAGSAHALBHBLCHCLDHDLAXBXCXDXBPSIDICSDS
39、ESSS通用寄存器通用寄存器控制寄存器控制寄存器段寄存器段寄存器16位位16位位603.2.2 8086的总线周期的总线周期n工作时序分为很多小的时间片工作时序分为很多小的时间片:n时钟周期时钟周期 一个时钟脉冲所持续的时间。时钟周期越短,一个时钟脉冲所持续的时间。时钟周期越短,CPU执行速度越快。执行速度越快。n总线周期总线周期 通过总线对存储器或通过总线对存储器或I/O接口进行一次访问接口进行一次访问所需要的时间。一般包括所需要的时间。一般包括4个时钟周期。个时钟周期。在在5MHz的工作频率时,一个标准总线周期为的工作频率时,一个标准总线周期为0.8s。61总线周期中各时钟周期的操作总线周
40、期中各时钟周期的操作nT1周期周期nCPU向存储器或向存储器或I/O发送地址发送地址nCPU向地址向地址/数据分离器(地址锁存器)发数据分离器(地址锁存器)发送送ALE信号信号nT2周期周期n给存储器或给存储器或I/O发送写入的数据发送写入的数据n测试测试READY引脚状态,以决定是否插入等引脚状态,以决定是否插入等待周期待周期n发出发出RD或或WR信号信号64总线周期中各时钟周期的操作总线周期中各时钟周期的操作nT3周期周期n等待存储器或等待存储器或I/O存取数据完成存取数据完成n使数据在使数据在CPU与存储器或与存储器或I/O之间传输之间传输nT4周期周期n写入数据写入数据 读读/写总线周
41、期的信号波形见下页图写总线周期的信号波形见下页图65数据写入存储器时的总线操作数据写入存储器时的总线操作写总线周期写总线周期由由ALE信号将地址锁存到地址锁存器信号将地址锁存到地址锁存器DEN=0并且并且DT/R=1时打开总线时打开总线缓冲器,将其放到系统数据总线上缓冲器,将其放到系统数据总线上此信号与此信号与M/IO信号共同构成存储信号共同构成存储器写控制信号,将数据写入存储器器写控制信号,将数据写入存储器66数据从存储器读出的总线操作数据从存储器读出的总线操作读总线周期读总线周期DEN=0并且并且DT/R=0时打开总线缓冲器,时打开总线缓冲器,将其放到将其放到CPU总线上,供总线上,供CP
42、U读入读入 较完整较完整的读总线的读总线周期周期此信号与此信号与M/IO信号共同构成存信号共同构成存储器读控制信号储器读控制信号由由ALE信号将地址锁存到地址锁存器信号将地址锁存到地址锁存器67存储器读总线周期存储器读总线周期I/O CH RDYA19A0D7D0T4T3T2T1ALECLKMEMR*nT1状态状态送出存储器地址送出存储器地址nT2状态状态存储器读控制信号有效存储器读控制信号有效nT3状态状态检测检测I/O CH RDY准备好准备好信号,确定是否插入等待状态信号,确定是否插入等待状态TwnT4状态状态读取存储器送来的数据读取存储器送来的数据68存储器写总线周期存储器写总线周期I
43、/O CH RDY A19A0D7D0T4T3T2T1ALECLKMEMW*nT1状态状态送出存储器地址送出存储器地址nT2状态状态存储器写控制信号有效;存储器写控制信号有效;同时送出数据同时送出数据nT3状态状态检测检测I/O CH RDY准备好准备好信号,确定是否插入等待状态信号,确定是否插入等待状态TwnT4状态状态存储器读取数据存储器读取数据69I/O读总线周期读总线周期I/O CH RDYA15A0D7D0T4TwT3T2T1ALECLKIOR*nT1状态状态送出送出I/O地址地址nT2状态状态I/O读控制信号有效读控制信号有效nT3状态状态确定插入一个等待状态确定插入一个等待状态T
44、wnTw状态状态检测检测I/O CH RDY准备好信准备好信号,确定是否再插入等待状态号,确定是否再插入等待状态TwnT4状态状态CPU读取外设送来的数据读取外设送来的数据70I/O写总线周期写总线周期I/O CH RDYA15A0D7D0T4TwT3T2T1ALECLKIOW*nT1状态状态送出送出I/O地址地址nT2状态状态I/O写控制信号有效;同时在写控制信号有效;同时在送出数据送出数据nT3状态状态确定插入一个等待状态确定插入一个等待状态TwnTw状态状态检测检测I/O CH RDY准备好信准备好信号,确定是否再插入等待状态号,确定是否再插入等待状态TwnT4状态状态外设读取外设读取C
45、PU送来的数据送来的数据71主要内容:主要内容:n3.3.1 存储单元的地址和内容存储单元的地址和内容n3.3.2 存储器的分段机制存储器的分段机制n3.3.3 逻辑地址和物理地址逻辑地址和物理地址n3.3.4 堆栈及堆栈段的使用堆栈及堆栈段的使用3.3 8086的存储器组织的存储器组织723.3 8086的存储器组织的存储器组织n8086可访问可访问1MB的存储空间(的存储空间(为什么?为什么?)n哪个寄存器能够放得下哪个寄存器能够放得下20位的地址?位的地址?n用用分段分段的方法解决。的方法解决。n段是存储器中的一块区域段是存储器中的一块区域n段起始于存储器内段起始于存储器内16字节整倍数
46、的边界处。字节整倍数的边界处。n段首地址的最低段首地址的最低4位一定为位一定为0733.3 8086的存储器组织的存储器组织n用用段段和和偏移偏移的组合访问存储单元的组合访问存储单元n每个段最大为每个段最大为64KB,最小为,最小为16B(为什为什么?么?)n所有存储单元的地址都由所有存储单元的地址都由段地址段地址加加偏移地偏移地址址组成组成n段地址段地址被装入段寄存器中以供寻址使用被装入段寄存器中以供寻址使用n偏移地址偏移地址用于在用于在64KB存储器段内选择任存储器段内选择任一单元一单元74n计算机中信息的单位有:计算机中信息的单位有:位(位(bit)、)、字节(字节(byte)、)、字(
47、字(word)、)、双字(双字(double word)等等n在存储器中,信息的在存储器中,信息的存储单元存储单元是:字节是:字节n80 x86微处理器对多字节数据采用:微处理器对多字节数据采用:小端方式(小端方式(little endian)n存储的数据如果存储的数据如果对齐边界对齐边界,则存取速度较快,则存取速度较快3.3.1存储单元的地址和内容存储单元的地址和内容75信息的表示单位信息的表示单位n位位bit:存储一位二进制数:存储一位二进制数:0或或1。n字节字节Byte:8位二进制位二进制,D7D0。n字字Word:16位位/2个字节,个字节,D15D0。n双字双字Double:32位
48、位/4个字节个字节,D31D0。76信息的表示单位信息的表示单位n最低有效位最低有效位LSB(Least Significant Bit):):数据的最低位,即数据的最低位,即D0位;位;n最高有效位最高有效位MSB(Most Significant Bit):):数据的最高位,数据的最高位,对应字节对应字节 D7 位位 对应字对应字 D15位位 对应双字对应双字 D31位位77小端方式小端方式n多字节数据在存储器中占据多个连续的存储单元多字节数据在存储器中占据多个连续的存储单元n存放时,低字节存于低地址,高字节存于高地址存放时,低字节存于低地址,高字节存于高地址n多字节数据占据的地址空间用它
49、的低地址来表示多字节数据占据的地址空间用它的低地址来表示n例如:例如:图图2.3中,中,2号号“字字”单元:单元:0002H =1234H 2号号“双字双字”单元:单元:0002H =78561234Hn80 x86处理器的处理器的“低对低、高对高低对低、高对高”的存储形式,的存储形式,被称为被称为“小端方式小端方式”79内存地址空间和数据组织内存地址空间和数据组织若存放的信息是若存放的信息是字节字节,则按顺序存放,则按顺序存放若存放的信息是若存放的信息是字字,则将字的低位字节存放在低,则将字的低位字节存放在低地址,高位字节存放在高地址地址,高位字节存放在高地址若存放的信息是若存放的信息是双字
50、双字,则将双字的低位字存放在,则将双字的低位字存放在低地址,高位字存放在高地址低地址,高位字存放在高地址低字节低地址,高字节高地址低字节低地址,高字节高地址80存放数据的起始地址可以任意,但是字数据存放存放数据的起始地址可以任意,但是字数据存放在偶数地址单元,双字数据存放在能被在偶数地址单元,双字数据存放在能被4整除的整除的地址单元,可以改善程序性能。地址单元,可以改善程序性能。处理器对内存的访问只需一个总线周期处理器对内存的访问只需一个总线周期对准双字:对应地址是对准双字:对应地址是4的倍数的倍数对准字:对应地址是对准字:对应地址是2的倍数的倍数内存地址空间和数据组织内存地址空间和数据组织8