第2章8086 微处理器及其系统结构_第1页
第2章8086 微处理器及其系统结构_第2页
第2章8086 微处理器及其系统结构_第3页
第2章8086 微处理器及其系统结构_第4页
第2章8086 微处理器及其系统结构_第5页
已阅读5页,还剩148页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章第二章 80868086微处微处理器及其系统结构理器及其系统结构p 80868086的内部结构的内部结构p 80868086的寄存器组的寄存器组p 80868086微处理器引脚信号微处理器引脚信号p 80868086微处理器典型时序分析微处理器典型时序分析 8086 CPU 8086 CPU是是IntelIntel公司一种公司一种1616位微处理器位微处理器,是第三代微处理器的代表,是第三代微处理器的代表, ,是是80X8680X86的基本的基本型。它有型。它有1616根数据线和根数据线和2020根地址线,所以可根地址线,所以可寻址的地址空间是寻址的地址空间是2 220201MB1MB,

2、内部总线和,内部总线和ALUALU全部为全部为1616位,可以进行位,可以进行8 8位和位和1616位操作。以下位操作。以下是是8086CPU8086CPU实物图。实物图。 v80868086内部结构有两个功能模块,完成一条指内部结构有两个功能模块,完成一条指令的取指和执行功能令的取指和执行功能模块之一:总线接口单元模块之一:总线接口单元BIUBIU,主要负责读,主要负责读取指令和操作数取指令和操作数模块之二:执行单元模块之二:执行单元EU EU ,主要负责指令译,主要负责指令译码和执行码和执行80868086的功能结构的功能结构80868086内部结构内部结构内部暂存器内部暂存器 IP ES

3、 SS DS CS总线控制总线控制电路电路外部总线外部总线执行部分执行部分控制电路控制电路1 2 3 4 5 6ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用寄存器通用寄存器地址加法器地址加法器指令队列缓冲器指令队列缓冲器执行部件执行部件 (EU)EU)总线接口部件总线接口部件 (BIU)BIU)1616位位20位位16位位8 8位位80888088的指令的指令队列是队列是4B4B暂存寄存器暂存寄存器 从功能上来看,从功能上来看,8086CPU8086CPU可分为可分为两部分,即总线接口部件两部分,即总线接口部件BIUBIU(Bus Bus

4、 Interface UnitInterface Unit)和执行部件)和执行部件EUEU(Execution UnitExecution Unit)。在执行指令的)。在执行指令的过程中,两个部件形成了两级流水线:过程中,两个部件形成了两级流水线:执行部件执行指令的同时,总线接口执行部件执行指令的同时,总线接口部件完成从主存中预取后继续指令的部件完成从主存中预取后继续指令的工作,使指令的读取与执行可以部分工作,使指令的读取与执行可以部分重叠。重叠。总线接口部件总线接口部件BIUBIU 功能:负责完成取指令送指令队列,配合执行功能:负责完成取指令送指令队列,配合执行部件的动作,从内存单元或部件的

5、动作,从内存单元或I/OI/O端口取操作数,或端口取操作数,或者将操作结果送内存单元或者者将操作结果送内存单元或者I/OI/O端口。端口。BIUBIU由以由以下部分组成。下部分组成。 地址加法器和段寄存器地址加法器和段寄存器 1 1个个2020位地址加法器、位地址加法器、4 4个个1616位段寄存器位段寄存器 ,地,地址加法器将址加法器将1616位的段寄存器内容左移位的段寄存器内容左移4 4位,与位,与1616位位偏移地址相加,形成偏移地址相加,形成2020位的物理地址。位的物理地址。 16 16位指令指针位指令指针IPIP 指令指针指令指针IPIP用来存放下一条要执行指令在代码用来存放下一条

6、要执行指令在代码段中的偏移地址。段中的偏移地址。 指令队列缓冲器指令队列缓冲器 当当EUEU正在执行指令中,且不需占用总线时,正在执行指令中,且不需占用总线时,BIUBIU会自动地进行预取指令操作,将所取得的指令会自动地进行预取指令操作,将所取得的指令按先后次序存入按先后次序存入1 1个个6 6字节的指令队列寄存器,该字节的指令队列寄存器,该队列寄存器按队列寄存器按“先进先出先进先出”的方式工作,并按顺的方式工作,并按顺序取到序取到EUEU中执行。中执行。 总线控制逻辑电路总线控制逻辑电路执行部件执行部件EUEUl功能:功能:负责进行所有指令的解释和执行。由以负责进行所有指令的解释和执行。由以

7、下部分组成:下部分组成: 算术逻辑运算单元算术逻辑运算单元 它是它是1 1个个1616位的运算器,可用于位的运算器,可用于8 8位、位、1616位位二进制算术和逻辑运算,也可按指令的寻址方二进制算术和逻辑运算,也可按指令的寻址方式计算寻址存储器所需的式计算寻址存储器所需的1616位偏移量。位偏移量。 通用寄存器组通用寄存器组 它包括它包括4 4个个1616位的数据寄存器位的数据寄存器AXAX、BXBX、CXCX、DXDX和和4 4个个1616位指针与变址寄存器位指针与变址寄存器SPSP、BPBP与与SISI、DIDI。 标志寄存器标志寄存器 它是它是1 1个个1616位的寄存器,用来反映位的寄

8、存器,用来反映CPUCPU运运算的状态特征和存放某些控制标志。算的状态特征和存放某些控制标志。 数据暂它协助数据暂它协助ALUALU完成运算,暂存参完成运算,暂存参加运算的数据。加运算的数据。 EU EU控制电路控制电路 它负责从它负责从BIUBIU的指令队列缓冲器中取指令,的指令队列缓冲器中取指令,并对指令译码,根据指令要求向并对指令译码,根据指令要求向EUEU内部各部内部各部件发出控制命令,以完成各条指令规定的功件发出控制命令,以完成各条指令规定的功能。能。 BIUBIU与与EUEU的动作协调原则:的动作协调原则: 总线接口部件总线接口部件(BIU)(BIU)和执行部件和执行部件(EU)(

9、EU)按按以下流水线技术原则协调工作,共同完成以下流水线技术原则协调工作,共同完成所要求的信息处理任务所要求的信息处理任务. . 每当每当80868086的指令队列中有两个空字的指令队列中有两个空字节,节,BIUBIU就会自动把指令取到指令队列中就会自动把指令取到指令队列中。其取指的顺序是按指令在程序中出现的。其取指的顺序是按指令在程序中出现的前后顺序。前后顺序。 每当每当EUEU准备执行一条指令时,它会从准备执行一条指令时,它会从BIUBIU部件的指令队列前部取出指令的代码,然部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行指令。在执行指令后用几个时钟周期去执行指令。在执行指令的过

10、程中,如果必须访问存储器或者的过程中,如果必须访问存储器或者I IO O端端口,那么口,那么EUEU就会请求就会请求BIUBIU,进入总线周期,完,进入总线周期,完成访问内存或者成访问内存或者I IO O端口的操作;如果此时端口的操作;如果此时BIUBIU正好处于空闲状态,会立即响应正好处于空闲状态,会立即响应EUEU的总线的总线请求。如请求。如BIUBIU正将某个指令字节取到指令队列正将某个指令字节取到指令队列中,则中,则BIUBIU将首先完成这个取指令的总线周期将首先完成这个取指令的总线周期,然后再去响应,然后再去响应EUEU发出的访问总线的请求。发出的访问总线的请求。 当指令队列已满,且

11、当指令队列已满,且EUEU又没有总线访问又没有总线访问请求时,请求时,BIUBIU便进入空闲状态。便进入空闲状态。 在执行转移指令、调用指令和返回指在执行转移指令、调用指令和返回指令时,由于待执行指令的顺序发生了变化,令时,由于待执行指令的顺序发生了变化,则指令队列中已经装入的字节被自动消除,则指令队列中已经装入的字节被自动消除,BIUBIU会接着往指令队列装入转向的另一程序会接着往指令队列装入转向的另一程序段中的指令代码。段中的指令代码。 BIU BIU与与EUEU两者的工作是不同步的,正是两者的工作是不同步的,正是这种既相互独立又相互配合的关系,使得这种既相互独立又相互配合的关系,使得80

12、868086可以在执行指令的同时,进行取指令代可以在执行指令的同时,进行取指令代码的操作,也就是说码的操作,也就是说BIUBIU与与EUEU是一种并行工是一种并行工作方式,改变了以往计算机取指令作方式,改变了以往计算机取指令译码译码执行指令的串行工作方式,实现流水线作业执行指令的串行工作方式,实现流水线作业,大大提高了工作效率。,大大提高了工作效率。小结小结 CPU内部组成及各完成的功能内部组成及各完成的功能 v8086CPU8086CPU由总线接口部件由总线接口部件BIUBIU和执行部件和执行部件EUEU两两部分组成。部分组成。 总线接口部件负责与存储器和总线接口部件负责与存储器和I0I0端

13、口之端口之间传送数据间传送数据, ,总线口部件主要包括:总线口部件主要包括:4 4个段地个段地址寄存器;一个指令指针寄存器址寄存器;一个指令指针寄存器IPIP;一个;一个2020位地址加法器;位地址加法器;6 6字节指令队列;内部寄存器;字节指令队列;内部寄存器;总线控制电路。总线控制电路。 执行部件负责指令的执行,主要包括:执行部件负责指令的执行,主要包括:8 8个个1616位通用寄存器;标志寄存器;算术逻辑位通用寄存器;标志寄存器;算术逻辑单元单元ALUALU和和EUEU控制电路。控制电路。第二章第二章 80868086微处微处理器及其系统结构理器及其系统结构p 80868086的功能结构

14、的功能结构p 80868086的寄存器组的寄存器组p 80868086微处理器引脚信号微处理器引脚信号p 80868086微处理器典型时序分析微处理器典型时序分析80868086的寄存器组的寄存器组执行单元执行单元EU 8EU 8个通用寄存器个通用寄存器(AX/BX/CX/DX (AX/BX/CX/DX SI/DI BP/SP)SI/DI BP/SP)1 1个标志寄存器个标志寄存器(FR)(FR)1 1个指令指针寄存器个指令指针寄存器(IP)(IP)4 4个段寄存器个段寄存器(CS/DS/ES/SS)(CS/DS/ES/SS)80868086的寄存器组的寄存器组v微处理器是微机的硬件核心微处理

15、器是微机的硬件核心, ,主要包含指令执主要包含指令执行的运算和控制部件,还有多种寄存器,对行的运算和控制部件,还有多种寄存器,对汇编语言程序员来说,汇编语言程序员来说,80868086内部结构就是可内部结构就是可编程的寄存器组编程的寄存器组执行单元执行单元EU 8EU 8个通用寄存器个通用寄存器(AX/BX/CX/DX (AX/BX/CX/DX SI/DI BP/SP)SI/DI BP/SP)1 1个标志寄存器个标志寄存器(FR)(FR)1 1个指令指针寄存器个指令指针寄存器(IP)(IP)4 4个段寄存器个段寄存器(CS/DS/ES/SS)(CS/DS/ES/SS)8086 CPU8086

16、CPU内部寄存器如图所示。内部寄存器如图所示。 数据寄存器数据寄存器v数据寄存器用来存放计算的结果和操作数数据寄存器用来存放计算的结果和操作数v每个寄存器又有它们各自的专用目的:每个寄存器又有它们各自的专用目的:AX16AX16位累加器,使用频度最高,用位累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息于算术、逻辑运算以及与外设传送信息等;等;ALAL为为8 8位累加器。位累加器。BXBX基址寄存器,常用来做基址指针,基址寄存器,常用来做基址指针,指向一批连续存放操作数的基地址。指向一批连续存放操作数的基地址。CXCX计数器,作为循环和串操作等指计数器,作为循环和串操作等指令中的隐含

17、计数器。令中的隐含计数器。DXDX数据寄存器,用来存放外设端口数据寄存器,用来存放外设端口的的1616位地址,或双字长数据的高位地址,或双字长数据的高1616位。位。变址寄存器变址寄存器v变址寄存器常用于存储器寻址时提供地址变址寄存器常用于存储器寻址时提供地址vSISI是源变址寄存器是源变址寄存器vDIDI是目的变址寄存器是目的变址寄存器v在串操作类指令中,在串操作类指令中,SISI和和DIDI具有特别的功具有特别的功能能指针寄存器指针寄存器v指针寄存器用于寻址内存堆栈内的数据指针寄存器用于寻址内存堆栈内的数据vSPSP为堆栈指针寄存器,指示栈顶的偏移地为堆栈指针寄存器,指示栈顶的偏移地址。址

18、。SPSP不能再用于其他目的,具有专用性不能再用于其他目的,具有专用性vBPBP为基址指针寄存器,表示数据在堆栈段为基址指针寄存器,表示数据在堆栈段中的基地址中的基地址vSP/BPSP/BP寄存器与寄存器与SSSS段寄存器联合使用以确段寄存器联合使用以确定堆栈段中的存储单元地址定堆栈段中的存储单元地址堆栈(堆栈(StackStack)v堆栈是主存中一个特殊的区域堆栈是主存中一个特殊的区域v它采用它采用(First In Last OutFirst In Last Out)或后进先出或后进先出LIFOLIFO(Last In First OutLast In First Out)的)的原则进行存

19、取操作,而不是随机存取操作方原则进行存取操作,而不是随机存取操作方式。式。v堆栈通常由处理器自动维持。在堆栈通常由处理器自动维持。在80868086中,由中,由堆栈段寄存器堆栈段寄存器SSSS和堆栈指针寄存器和堆栈指针寄存器SPSP共同指共同指示示 8086 CPU 8086 CPU是是IntelIntel公司一种公司一种1616位微处理器位微处理器,是第三代微处理器的代表,是第三代微处理器的代表, ,是是80X8680X86的基本的基本型。它有型。它有1616根数据线和根数据线和2020根地址线,所以可根地址线,所以可寻址的地址空间是寻址的地址空间是2 220201MB1MB,内部总线和,内

20、部总线和ALUALU全部为全部为1616位,可以进行位,可以进行8 8位和位和1616位操作。以下位操作。以下是是8086CPU8086CPU实物图。实物图。 80868086内部结构内部结构内部暂存器内部暂存器 IP ES SS DS CS总线控制总线控制电路电路外部总线外部总线执行部分执行部分控制电路控制电路1 2 3 4 5 6ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用寄存器通用寄存器地址加法器地址加法器指令队列缓冲器指令队列缓冲器执行部件执行部件 (EU)EU)总线接口部件总线接口部件 (BIU)BIU)1616位位20位位16

21、位位8 8位位80888088的指令的指令队列是队列是4B4B暂存寄存器暂存寄存器80868086的寄存器组的寄存器组v对汇编语言程序员来说,对汇编语言程序员来说,80868086内部结构就是内部结构就是可编程的寄存器组可编程的寄存器组 执行单元执行单元EU 8EU 8个通用寄存器个通用寄存器 1 1个标志寄存器个标志寄存器 1 1个指令指针寄存器个指令指针寄存器 4 4个段寄存器个段寄存器标志寄存器标志寄存器v标志(标志(FlagFlag)用于反映指令执行结果或控制)用于反映指令执行结果或控制指令执行形式指令执行形式v80868086处理器的各种标志形成了一个处理器的各种标志形成了一个161

22、6位的标位的标志寄存器志寄存器FRFROF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0进位标志进位标志CFCF(Carry FlagCarry Flag)v当运算结果的最高有效位有进位(加法)或当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置借位(减法)时,进位标志置1 1,即,即CF = 1CF = 1;否则否则CF = 0CF = 0。0AAH + 7CH0AAH + 7CH(1 1)26H26H,有进位:,有进位:CF = 1CF = 13AH + 7CH3AH + 7CH , CF =, CF =0B6H0B6H0零标志零标志ZFZF(Zero

23、 FlagZero Flag)v若运算结果为若运算结果为0 0,则,则ZF = 1ZF = 1;否则否则ZF = 0ZF = 03AH + 7CH3AH + 7CH0B6H0B6H,结果不是零:,结果不是零:ZF = 0ZF = 084H + 7CH84H + 7CH00 00 ,结果为零,结果为零 :ZF =1ZF =1 注意:注意:ZFZF为为1 1表示的结果是表示的结果是0 0符号标志符号标志SFSF(Sign FlagSign Flag)v运算结果最高位为运算结果最高位为1 1,则,则SF = 1SF = 1;否则;否则SF = 0SF = 03AH + 7CH3AH + 7CH0B6

24、H0B6H,最高位,最高位D D7 71 1:SF = 1SF = 184H + 7CH84H + 7CH(1 1)00H00H,最高位,最高位D D7 70 0:SF = 0SF = 0奇偶标志奇偶标志PF(Parity Flag)v当运算结果最低字节中当运算结果最低字节中“1”的个数为零或偶的个数为零或偶数时,数时,PF=1;否则;否则PF=0。例如:例如:3AH + 7CHB6H10110110B,结果中有结果中有5个个1,是奇数,则,是奇数,则 PF=0注意:注意:PF标志仅反映最低标志仅反映最低8位中位中“1”的个数的个数是偶或奇,即使是进行是偶或奇,即使是进行16位字操作。位字操作

25、。溢出标志溢出标志OFOF(Overflow FlagOverflow Flag)v若算术运算的结果有溢出,则若算术运算的结果有溢出,则OF=1OF=1;否则;否则 OFOF0 0。例如:。例如:3AH + 7CH3AH + 7CHB6HB6H产生溢出:产生溢出:OF=1OF=1AAH + 7CHAAH + 7CH26H26H没有溢出:没有溢出:OF=0OF=0问题:问题:什么是溢出?什么是溢出?溢出和进位有什么区别?溢出和进位有什么区别?处理器怎么处理,程序员如何运用?处理器怎么处理,程序员如何运用?如何判断是否溢出?如何判断是否溢出?溢出标志溢出标志OFOF(Overflow FlagOv

26、erflow Flag)v若算术运算的结果有溢出,则若算术运算的结果有溢出,则OF=1OF=1;否则;否则 OFOF0 0。v问题:问题:什么是溢出?什么是溢出?溢出和进位有什么区别?溢出和进位有什么区别?程序员如何运用?程序员如何运用?什么是溢出什么是溢出v处理器内部以补码表示有符号数处理器内部以补码表示有符号数v8 8位表达的整数范围是:位表达的整数范围是:127127128128v1616位表达的范围是:位表达的范围是:32767327673276832768v如果运算结果超出这个范围,就产生了溢出如果运算结果超出这个范围,就产生了溢出v有溢出,说明有符号数的运算结果不正确有溢出,说明有

27、符号数的运算结果不正确什么是溢出什么是溢出v处理器内部以补码表示有符号数处理器内部以补码表示有符号数v8 8位表达的整数范围是:位表达的整数范围是:127127128128v1616位表达的范围是:位表达的范围是:32767327673276832768v如果运算结果超出这个范围,就产生了溢出如果运算结果超出这个范围,就产生了溢出v有溢出,说明有符号数的运算结果不正确有溢出,说明有符号数的运算结果不正确3AH3AH7CH7CH0B6H0B6H,就是,就是5858124124182182,已经超出已经超出-128-128+127+127范围,产生溢出,故范围,产生溢出,故OFOF1 1;什么是溢

28、出什么是溢出v处理器内部以补码表示有符号数处理器内部以补码表示有符号数v8 8位表达的整数范围是:位表达的整数范围是:127127128128v1616位表达的范围是:位表达的范围是:32767327673276832768v如果运算结果超出这个范围,就产生了溢出如果运算结果超出这个范围,就产生了溢出v有溢出,说明有符号数的运算结果不正确有溢出,说明有符号数的运算结果不正确3AH3AH7CH7CH0B6H0B6H,就是,就是5858124124182182,已经超出已经超出-128-128+127+127范围,产生溢出,故范围,产生溢出,故OFOF1 1;例:例: 96= 01100000 6

29、5= 01000001 161= 10100001 CF=0 无进位无进位 OF=1 有溢出有溢出例:例: 10000001 00000011 10000100 OF= 0 无溢出无溢出例:例: 96= 01100000 65= 01000001 161= 10100001 CF=0 无进位无进位 OF= 1 有溢出有溢出CF=0 无进位无进位 7.有符号数的扩展运算有符号数的扩展运算CBW 96补补= 00000000 01100000 +65补补= 00000000 01000001 +161补补= 00000000 10100001 OF=0(无溢出,结果对)(无溢出,结果对) 7.有符

30、号数的扩展运算有符号数的扩展运算CBW(续)(续) 4646补补=00101110B=00101110B, 4646补补=11010010B=11010010B,从从8 8位扩展到位扩展到1616位位 4646补补= =0000 00000000 0000 0010 1110B=002EH 0010 1110B=002EH 4646补补= =1111 11111111 1111 1101 0010B=0FFD2H 1101 0010B=0FFD2H 什么是溢出什么是溢出v处理器内部以补码表示有符号数处理器内部以补码表示有符号数v8 8位表达的整数范围是:位表达的整数范围是:1271271281

31、28v1616位表达的范围是:位表达的范围是:32767327673276832768v如果运算结果超出这个范围,就产生了溢出如果运算结果超出这个范围,就产生了溢出v有溢出,说明有符号数的运算结果不正确有溢出,说明有符号数的运算结果不正确3AH3AH7CH7CH0B6H0B6H,就是,就是5858124124182182,已经超出已经超出-128-128+127+127范围,产生溢出,故范围,产生溢出,故OFOF1 1;另一方面,补码另一方面,补码0B6H0B6H表达真值是表达真值是-74-74,显然运算结果也不正确显然运算结果也不正确溢出和进位的区别溢出和进位的区别v溢出标志溢出标志OFOF

32、和进位标志和进位标志CFCF是两个意义不同的是两个意义不同的标志标志v进位标志表示无符号数运算结果是否超出范进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;围,运算结果仍然正确;v溢出标志表示有符号数运算结果是否超出范溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。围,运算结果已经不正确。溢出和进位的对比溢出和进位的对比例例1 1:3AH + 7CH3AH + 7CH0B6H0B6H无符号数运算:无符号数运算: 5858124124182182范围内,无进位范围内,无进位有符号数运算:有符号数运算: 5858124124182182范围外,有溢出范围外,有溢出例例2

33、2:0AAH + 7CH0AAH + 7CH(1 1)26H26H无符号数运算:无符号数运算:170170124124294294范围外,有进位范围外,有进位有符号数运算:有符号数运算:86861241242828范围内,无溢出范围内,无溢出如何运用溢出和进位如何运用溢出和进位v处理器对两个操作数进行运算时,按照无符处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志号数求得结果,并相应设置进位标志CFCF;同;同时,根据是否超出有符号数的范围设置溢出时,根据是否超出有符号数的范围设置溢出标志标志OFOF。v应该利用哪个标志,则由程序员来决定。也应该利用哪个标志,则由程序员来

34、决定。也就是说,如果将参加运算的操作数认为是无就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,符号数,就应该关心进位;认为是有符号数,则要注意是否溢出。则要注意是否溢出。溢出的判断溢出的判断v判断运算结果是否溢出有一个简单的规则:判断运算结果是否溢出有一个简单的规则:v只有当两个相同符号数相加(包括不同符号只有当两个相同符号数相加(包括不同符号数相减),而运算结果的符号与原数据符号数相减),而运算结果的符号与原数据符号相反时,产生溢出;因为,此时的运算结果相反时,产生溢出;因为,此时的运算结果显然不正确显然不正确v其他情况下,则不会产生溢出其他情况下,则不会产生溢

35、出辅助进位标志辅助进位标志AFAF(Auxiliary Carry FlagAuxiliary Carry Flag)v运算时运算时D D3 3位(低半字节)有进位或借位时,位(低半字节)有进位或借位时,AF=1AF=1;否则;否则AF=0AF=0。例如:例如:3AH + 7CH3AH + 7CHB6HB6H D D3 3向前有进位:向前有进位:AF=1AF=1这个标志主要由处理器内部使用,用于十进这个标志主要由处理器内部使用,用于十进制算术运算的调整,用户一般不必关心。制算术运算的调整,用户一般不必关心。方向标志方向标志DFDF(Direction FlagDirection Flag)v用

36、于串操作指令中,控制地址的变化方向:用于串操作指令中,控制地址的变化方向:设置设置DFDF0 0,串操作后存储器地址自动增量,串操作后存储器地址自动增量(增址);(增址);设置设置DFDF1 1,串操作后存储器地址自动减量,串操作后存储器地址自动减量(减址)。(减址)。方向标志方向标志DFDF(Direction FlagDirection Flag)v用于串操作指令中,控制地址的变化方向:用于串操作指令中,控制地址的变化方向:设置设置DFDF0 0,串操作后存储器地址自动增量,串操作后存储器地址自动增量(增址);(增址);设置设置DFDF1 1,串操作后存储器地址自动减量,串操作后存储器地址

37、自动减量(减址)。(减址)。vCLD CLD 指令复位方向标志:指令复位方向标志:DFDF0 0vSTD STD 指令置位方向标志:指令置位方向标志:DFDF1 1中断允许标志中断允许标志IF(Interrupt-enable Flag)IF(Interrupt-enable Flag)v用于控制外部可屏蔽中断是否可以被处理器响应:用于控制外部可屏蔽中断是否可以被处理器响应:设置设置IFIF1 1,则允许中断;,则允许中断;设置设置IFIF0 0,则禁止中断。,则禁止中断。中断允许标志中断允许标志IF(Interrupt-enable Flag)IF(Interrupt-enable Flag

38、)v用于控制外部可屏蔽中断是否可以被处理器响应:用于控制外部可屏蔽中断是否可以被处理器响应:设置设置IFIF1 1,则允许中断;,则允许中断;设置设置IFIF0 0,则禁止中断。,则禁止中断。vCLI CLI 指令复位中断标志:指令复位中断标志:IFIF0 0vSTI STI 指令置位中断标志:指令置位中断标志:IFIF1 1中断允许标志中断允许标志IF(Interrupt-enable Flag)IF(Interrupt-enable Flag)v用于控制外部可屏蔽中断是否可以被处理器响应:用于控制外部可屏蔽中断是否可以被处理器响应:设置设置IFIF1 1,则允许中断;,则允许中断;设置设置

39、IFIF0 0,则禁止中断。,则禁止中断。vCLI CLI 指令复位中断标志:指令复位中断标志:IFIF0 0vSTI STI 指令置位中断标志:指令置位中断标志:IFIF1 1 要注意的是,由于在复位操作时,标志寄存器被要注意的是,由于在复位操作时,标志寄存器被清清0 0,因此其中的中断标志,因此其中的中断标志IFIF也被清也被清0 0,这样就阻止了,这样就阻止了所有的可屏蔽中断请求,都不能响应,即复位以后,所有的可屏蔽中断请求,都不能响应,即复位以后,若需要必需用开中断指令来重新设置若需要必需用开中断指令来重新设置IFIF标志。标志。陷阱标志陷阱标志TFTF(Trap FlagTrap F

40、lag)v用于控制处理器是否进入单步执行方式:用于控制处理器是否进入单步执行方式:设置设置TFTF0 0,处理器正常工作;,处理器正常工作;设置设置TFTF1 1,处理器每执行一条指令就中断,处理器每执行一条指令就中断一次,中断编号为一次,中断编号为 1 1 (称单步中断)(称单步中断) TF TF 也被称为单步标志。也被称为单步标志。v单步执行和单步调试单步执行和单步调试利用单步中断可对程序进行逐条指令的调试。利用单步中断可对程序进行逐条指令的调试。这种逐条指令调试程序的方法就是单步调试。这种逐条指令调试程序的方法就是单步调试。标志的分类标志的分类指令的执行与标志有很大关系。指令的执行与标志

41、有很大关系。标志分成两类:标志分成两类:v状态标志状态标志用来记录程序运行结果的状态用来记录程序运行结果的状态信息,许多指令的执行都将自动地改变它信息,许多指令的执行都将自动地改变它。CF OF AF SF ZF PFv控制标志控制标志可由用户根据需要用指令进行可由用户根据需要用指令进行设置,用于控制处理器的具体工作方式。设置,用于控制处理器的具体工作方式。DF IF TF80868086的寄存器组的寄存器组v对汇编语言程序员来说,对汇编语言程序员来说,80868086内部结构就是内部结构就是可编程的寄存器组可编程的寄存器组 执行单元执行单元EU 8EU 8个通用寄存器个通用寄存器 1 1个标

42、志寄存器个标志寄存器 1 1个指令指针寄存器个指令指针寄存器 4 4个段寄存器个段寄存器指令指针寄存器指令指针寄存器IPIPv指令指针寄存器指令指针寄存器IPIP,指示代码段中指令的偏,指示代码段中指令的偏移地址移地址v它与代码段寄存器它与代码段寄存器CSCS联用,确定下一条指令联用,确定下一条指令的物理地址的物理地址v计算机通过计算机通过CS : IPCS : IP寄存器来取指,从而控寄存器来取指,从而控制指令序列的执行流程制指令序列的执行流程vIPIP寄存器是一个专用寄存器,用户不能直接寄存器是一个专用寄存器,用户不能直接访问。访问。 顺序执行程序时,顺序执行程序时,CPUCPU每取一个指

43、令每取一个指令字节,字节,IPIP自动加,指向下一个要读取的字自动加,指向下一个要读取的字节;当节;当IPIP单独改变时或当单独改变时或当CSCS和和IPIP同时改变同时改变时,会发生程序转移。时,会发生程序转移。 顺序执行程序时,顺序执行程序时,CPUCPU每取一个指令每取一个指令字节,字节,IPIP自动加自动加1 1,指向下一个要读取的,指向下一个要读取的字节;当字节;当IPIP单独改变时,会发生段内的程单独改变时,会发生段内的程序转移;当序转移;当CSCS和和IPIP同时改变时,会产生段同时改变时,会产生段间的程序转移。间的程序转移。80868086的寄存器组的寄存器组v对汇编语言程序员

44、来说,对汇编语言程序员来说,80868086内部结构就是内部结构就是可编程的寄存器组可编程的寄存器组 执行单元执行单元EU 8EU 8个通用寄存器个通用寄存器 1 1个标志寄存器个标志寄存器 1 1个指令指针寄存器个指令指针寄存器 4 4个段寄存器个段寄存器 在对存储器进行操作时,内存一般可分成在对存储器进行操作时,内存一般可分成4 4个段,分别称为代码段、数据段、堆栈段和个段,分别称为代码段、数据段、堆栈段和附加数据段,每个段存放不同性质的数据,附加数据段,每个段存放不同性质的数据,进行不同的操作。进行不同的操作。代码段代码段CSCS:存放指令。:存放指令。 堆栈段堆栈段SSSS:程序的堆栈

45、区(子程序调用、系统:程序的堆栈区(子程序调用、系统功能调用、中断处理等操作使用)或作为临时功能调用、中断处理等操作使用)或作为临时数据存储区。数据存储区。段寄存器段寄存器 4 4个逻辑段的段基址分别放在相应的代个逻辑段的段基址分别放在相应的代码段寄存器码段寄存器CSCS、数据段寄存器、数据段寄存器DSDS、堆栈段寄、堆栈段寄存器存器SSSS和附加段寄存器和附加段寄存器ESES中,由这中,由这4 4个段寄个段寄存器来指明每个段在内存中的起始地址。存器来指明每个段在内存中的起始地址。 数据段数据段DSDS:存放程序所使用的数据。:存放程序所使用的数据。 附加数据段附加数据段ESES:辅助的数据区

46、(串操作指令:辅助的数据区(串操作指令使用)。使用)。第二章第二章 80868086微处微处理器及其系统结构理器及其系统结构p 80868086的功能结构的功能结构p 80868086的寄存器组的寄存器组p 80868086微处理器引脚信号微处理器引脚信号p 80868086微处理器典型时序分析微处理器典型时序分析v学习外部特性学习外部特性, ,首先了解其引脚信号,关首先了解其引脚信号,关注以下几个方面:注以下几个方面:引脚的功能引脚的功能信号的流向信号的流向有效电平有效电平三态能力三态能力输出正常的低电平、输出正常的低电平、高电平外,还可以高电平外,还可以输出高阻的第三态输出高阻的第三态80

47、86CPU8086CPU引脚功能引脚功能v80868086与与8088CPU8088CPU引脚区别:引脚区别:80868086有有1616位数据线,与地址线位数据线,与地址线A0-A15A0-A15兼兼用;用;2020位地址线位地址线, ,寻址空间达到寻址空间达到1MB1MB;80888088有有8 8位数据线,与地址线位数据线,与地址线A0-A7A0-A7兼用;兼用;80868086与与8088CPU8088CPU引脚引脚2828信号相反信号相反(M/IO, (M/IO, M/IO)M/IO)引脚引脚3434信号,信号, 80868086与与8088CPU8088CPU功能稍有功能稍有不同。

48、不同。8086CPU8086CPU引脚功能引脚功能v80868086与与8088CPU8088CPU引脚区别:引脚区别:80868086有有1616位数据线,与地址线位数据线,与地址线A0-A15A0-A15兼兼用;用;2020位地址线位地址线, ,寻址空间达到寻址空间达到1MB1MB;80888088有有8 8位数据线,与地址线位数据线,与地址线A0-A7A0-A7兼用;兼用;80868086与与8088CPU8088CPU引脚引脚2828信号相反信号相反(M/IO, (M/IO, M/IO)M/IO)引脚引脚3434信号,信号, 80868086与与8088CPU8088CPU功能稍有功能

49、稍有不同。不同。什么是分时复用?什么是分时复用?v分时复用就是一个引脚在不同的时分时复用就是一个引脚在不同的时刻具有两个甚至多个作用刻具有两个甚至多个作用v最常见的总线复用是数据和地址引最常见的总线复用是数据和地址引脚复用脚复用 v总线复用的目的是为了减少对外引总线复用的目的是为了减少对外引脚个数脚个数v8086CPU8086CPU的数据地址线采用了总线复的数据地址线采用了总线复用方法用方法什么是分时复用?什么是分时复用?v分时复用就是一个引脚在不同的时分时复用就是一个引脚在不同的时刻具有两个甚至多个作用刻具有两个甚至多个作用v最常见的总线复用是数据和地址引最常见的总线复用是数据和地址引脚复用

50、脚复用 v总线复用的目的是为了减少对外引总线复用的目的是为了减少对外引脚个数脚个数v8088 /8086CPU8088 /8086CPU的数据地址线采用了的数据地址线采用了总线复用方法总线复用方法最小模式下的系统典型配置最小模式下的系统典型配置GND INTRNMICLKGND19INTA( QS1)TESTREADYRESET 2 39 1 403 384 375 366 357 348 339 3210 3111 3012 2913 2814 2715 2616 2517 2418 2319 2220 21AD14 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3

51、 AD2 AD1 AD0 RDMN/MXHOLD( RQ/GT0)BHE/S76AA17/S4A18/S5/SA16/S3AD15 )VCC(+5VM/IO( S2)WR(LOCK)HLDA(RQ/GT1)DT/R( S1)DEN( S0)ALE( QS0) AD12 13 AD 地址地址/数据线数据线地址地址/状态线状态线非屏蔽中断非屏蔽中断可屏蔽中断请求可屏蔽中断请求最小最大模式控制最小最大模式控制MN/MX=1,最小模式最小模式MN/MX=0,最大模式最大模式读信号读信号总线保持请求信号总线保持请求信号总线保持相应信号总线保持相应信号写信号写信号存储器存储器/IO控制信号控制信号M/IO

52、=1,选中存储器选中存储器M/IO=0,选中选中IO接口接口数据发送数据发送/接收信号接收信号DT/R=1,发送发送DT/R=0,接收接收数据允许信号数据允许信号地址允许信号地址允许信号中断响应信号中断响应信号测试信号测试信号:执行执行WAIT指令,指令,CPU处于空转等待处于空转等待; TEST有效时有效时,结束等待状态。结束等待状态。准备好信号准备好信号:表示内存表示内存或或I/O设备准备好,设备准备好,可以进行数据传输。可以进行数据传输。复位信号复位信号8086CPU引脚功能引脚功能80868086内部结构内部结构内部暂存器内部暂存器 IP ES SS DS CS总线控制总线控制电路电路

53、外部总线外部总线执行部分执行部分控制电路控制电路1 2 3 4 5 6ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用寄存器通用寄存器地址加法器地址加法器指令队列缓冲器指令队列缓冲器执行部件执行部件 (EU)EU)总线接口部件总线接口部件 (BIU)BIU)1616位位20位位16位位8 8位位80888088的指令的指令队列是队列是4B4B暂存寄存器暂存寄存器地址地址/数据线数据线地址地址/状态线状态线非屏蔽中断非屏蔽中断可屏蔽中断请求可屏蔽中断请求最小最大模式控制最小最大模式控制MN/MX=1,最小模式最小模式MN/MX=0,最大模式最大

54、模式读信号读信号总线保持请求信号总线保持请求信号总线保持相应信号总线保持相应信号写信号写信号存储器存储器/IO控制信号控制信号M/IO=1,选中存储器选中存储器M/IO=0,选中选中IO接口接口数据发送数据发送/接收信号接收信号DT/R=1,发送发送DT/R=0,接收接收数据允许信号数据允许信号地址允许信号地址允许信号中断响应信号中断响应信号测试信号测试信号:执行执行WAIT指令,指令,CPU处于空转等待处于空转等待; TEST有效时有效时,结束等待状态。结束等待状态。准备好信号准备好信号:表示内存表示内存或或I/O设备准备好,设备准备好,可以进行数据传输。可以进行数据传输。复位信号复位信号8

55、086CPU引脚功能引脚功能v学习外部特性学习外部特性, ,首先了解其引脚信号,关首先了解其引脚信号,关注以下几个方面:注以下几个方面:引脚的功能引脚的功能信号的流向信号的流向有效电平有效电平三态能力三态能力输出正常的低电平、输出正常的低电平、高电平外,还可以高电平外,还可以输出高阻的第三态输出高阻的第三态“引脚引脚”小结小结8086CPU8086CPU可分成三类信号:可分成三类信号:v1616位数据线:引脚位数据线:引脚D D0 0D D1515v2020位地址线:位地址线:A A0 0A A1919v控制线:控制线:ALEALE、 M/IOM/IO、WRWR* *、RDRD* *、READ

56、YREADYBHEBHE* *、MN/MXMN/MX、TESTTEST* *、DT/RDT/R、DENDEN* *INTRINTR、INTAINTA* *、NMINMI,HOLDHOLD、HLDAHLDARESETRESET、CLKCLK、VccVcc、GNDGND最小模式下的系统典型配置最小模式下的系统典型配置“引脚引脚”小结小结8086CPU8086CPU可分成三类信号:可分成三类信号:v1616位数据线:引脚位数据线:引脚D D0 0D D1515v2020位地址线:位地址线:A A0 0A A1919v控制线:控制线:ALEALE、 M/IOM/IO、WRWR* *、RDRD* *、R

57、EADYREADYBHEBHE* *、MN/MXMN/MX、TESTTEST* *、DT/RDT/R、DENDEN* *INTRINTR、INTAINTA* *、NMINMI,HOLDHOLD、HLDAHLDARESETRESET、CLKCLK、VccVcc、GNDGND“引脚引脚”小结小结8086CPU8086CPU可分成三类信号:可分成三类信号:v1616位数据线:引脚位数据线:引脚D D0 0D D1515v2020位地址线:位地址线:A A0 0A A1919v控制线:控制线:ALEALE* *、M/IOM/IO* *、WRWR* *、RDRD、READYREADYBHEBHE、MN/

58、MXMN/MX、TESTTEST、DT/RDT/R* *、DENDEN* *INTRINTR、INTAINTA* *、NMINMI,HOLDHOLD* *、HLDAHLDA* *RESETRESET、CLKCLK、VccVcc、GNDGND 8086 CPU8086 CPU可以在两种模式下工作,即最可以在两种模式下工作,即最大模式和最小模式。当大模式和最小模式。当CPUCPU处于不同工作模式处于不同工作模式时,其部分引脚的功能是不同的,图中带有时,其部分引脚的功能是不同的,图中带有括号的引脚为最大模式时的引脚名称。括号的引脚为最大模式时的引脚名称。(1 1)两种工作方式功能相同的引脚)两种工作

59、方式功能相同的引脚 AD15 AD15 AD0AD0(3939脚、脚、2 2脚脚1616脚):脚):地址地址/ /数数据总线,双向,三态。是采用分时工作方式传据总线,双向,三态。是采用分时工作方式传送地址或数据的复用引脚。根据不同时钟周期送地址或数据的复用引脚。根据不同时钟周期的要求,决定当前是传送要访问的存储单元或的要求,决定当前是传送要访问的存储单元或I/OI/O端口的低端口的低1616位地址,还是传送位地址,还是传送1616位数据,或位数据,或是处于高阻状态。是处于高阻状态。A19/S6A19/S6A16/S3A16/S3(3535脚脚3838脚):地址脚):地址/ /状状态总线,输出,

60、三态。是采用分时工作方式态总线,输出,三态。是采用分时工作方式传送地址或状态的复用引脚,其中传送地址或状态的复用引脚,其中A19A19A16A16为为2020位地址总线的高位地址总线的高4 4位地址,位地址,S6S6S3S3是状态是状态信号。信号。S6S6:指示:指示80868086当前是否与总线相连,当当前是否与总线相连,当S6=0S6=0表示表示80868086当前与总线相连。当前与总线相连。S5S5:表明中断允许标志当前的设置。:表明中断允许标志当前的设置。S5=0S5=0,表示表示CPUCPU中断是关闭的,禁止一切可屏蔽中断中断是关闭的,禁止一切可屏蔽中断的中断请求;的中断请求;S5=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论