微机原理3-1PPT优秀课件_第1页
微机原理3-1PPT优秀课件_第2页
微机原理3-1PPT优秀课件_第3页
微机原理3-1PPT优秀课件_第4页
微机原理3-1PPT优秀课件_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章第三章 微处理器及其系统微处理器及其系统 微型计算机原理及应用微型计算机原理及应用 主编:主编:李继灿李继灿 清华大学出版社清华大学出版社 软件学院软件学院 2 引言引言 微型计算机微型计算机 系统系统 硬件系统硬件系统 ( (微机微机) ) 软件系统软件系统 微处理器微处理器 (CPUCPU) 主存储器主存储器 算术逻辑部件算术逻辑部件 外设外设 控制器控制器 应用软件应用软件 微型计算机系统的组成微型计算机系统的组成 系统软件系统软件 寄存器寄存器 I/OI/O接口接口 键盘、鼠标、显示器、键盘、鼠标、显示器、 硬盘、光盘、打印机等硬盘、光盘、打印机等 软件学院软件学院 3 内容提要

2、内容提要 3.3 存储器存储器 3.2 最小最小/最大工作方式最大工作方式 3.1 8086/8088微处理器微处理器 3.4 指令系统指令系统 3.5 微处理器微处理器 软件学院软件学院 4 3.1 80X863.1 80X86微处理器微处理器 80X8680X86是是IntelIntel公司生产的微处理器系列。公司生产的微处理器系列。 微处理器:微处理器: 把运算器和控制器集成到一个芯片。把运算器和控制器集成到一个芯片。 微计算机系统:微计算机系统: 把微处理器芯片作为中央处理机(把微处理器芯片作为中央处理机(CPUCPU ),配上存储器、输入输出设备和系统软件),配上存储器、输入输出设备

3、和系统软件 构成构成微计算机系统微计算机系统。 如:由如:由8038680386微处理器芯片构成的微机称为微处理器芯片构成的微机称为386386 微机。微机。 由由P4P4微处理器芯片构成的微机称为微处理器芯片构成的微机称为P4P4微机微机 。 软件学院软件学院 5 3.1.0 Intel3.1.0 Intel微处理器发展概述微处理器发展概述 1968 年,罗伯特年,罗伯特诺伊斯(诺伊斯(Robert Noyce)、)、 戈登戈登摩尔(摩尔(Gordon Moore)和安迪)和安迪格鲁夫格鲁夫 (Andy Grove)在硅谷共同创立了英特尔公)在硅谷共同创立了英特尔公 司。司。 Only th

4、e Paranoid Survive! -Andy Grove 了解了解 软件学院软件学院 6 3.1.0 Intel3.1.0 Intel微处理器发展概述微处理器发展概述 1. 1. 第第1 1代微处理器代微处理器 Intel4004/40404Intel4004/40404位微处理器位微处理器(1971)(1971) Intel8008 Intel8008 低档低档8 8位微处理器位微处理器(1972)(1972) 2. 2. 第第2 2代微处理器代微处理器 Intel8080/8085 8Intel8080/8085 8位微处理器位微处理器(1974)(1974) 指令比较完善,有了中断

5、与指令比较完善,有了中断与DMADMA 汇编、汇编、BASICBASIC、FORTRANFORTRAN Intel 4004 Intel 8085 了解了解 软件学院软件学院 7 3. 3. 第第3 3代微处理器代微处理器 Intel808616Intel808616位微处理器位微处理器(1978)(1978) Intel8088 Intel8088 准准1616位微处理器位微处理器(1979)(1979) Intel80286 Intel80286 高档高档1616位微处理器位微处理器(1982)(1982) 3.1.0 Intel3.1.0 Intel微处理器发展概述微处理器发展概述 了解

6、了解 软件学院软件学院 8 3.1.0 Intel3.1.0 Intel微处理器发展概述微处理器发展概述 了解了解 软件学院软件学院 9 IntelIntel公司生产的公司生产的80 x8680 x86: 推出推出 年代年代 CPU 芯片芯片 寄存器寄存器 位位 数 数 数据线数据线 宽宽 度 度 地址线地址线 宽宽 度 度 最大主频最大主频 MHz 寻址空间寻址空间 (B) ) 高速缓存高速缓存 1971 4004 4 4 8 0.1 256 无 无 1972 8008 8 8 14 0.2 16KB 无 无 1974 8080 8 8 16 2 64KB 无 无 1978 8086 16

7、16 20 10 1MB 无 无 1979 8088 16 8 20 8 1MB 无 无 1982 80286 16 16 24 16 16MB 无 无 1986 80386 32 32 32 33 4GB 有 有 1989 80486 32 32 32 66 4GB 8KB 1993 Pentium 32 64 32 100 4GB 8KB 数据数据+8KB 指令 指令 1995 Pentium Pro 32 64 36 200 64GB 8KB 数据数据 +8KB 指令指令 256KB二级高速缓存二级高速缓存 1997 Pentium II 32 64 36 450 64GB 32KB一级

8、一级+512KB二级 二级 1999 Pentium III 32 64 36 1000 64GB 32KB一级一级+512KB二级二级 2000 Pentium4 32 64 64 3600 224TB 128KB一级一级512KB二级二级 2005 Pentium4 EE 64 64 64 ? 224T B 三级高速缓存三级高速缓存 软件学院软件学院 10 3.1.13.1.1内部结构内部结构 1.1.算术逻辑部件算术逻辑部件ALUALU:执行算术和逻辑运算。执行算术和逻辑运算。 2.2.控制器:控制器:负责对全机的控制。负责对全机的控制。 3.3.寄存器寄存器: : 处理器中临时存储数据

9、的基本逻辑部件。处理器中临时存储数据的基本逻辑部件。 lCPUCPU的任务的任务: : 执行存放在存储器中的指令序列执行存放在存储器中的指令序列 lCPUCPU的组成的组成: : 运算器运算器+ +控制器控制器+ +高速缓存(高速缓存(386386开始)开始) lCPUCPU功能功能: : 取指令取指令 - - 分析指令分析指令 - - 执行指令执行指令 软件学院软件学院 11 中央处理机中央处理机CPUCPU的物理组成的物理组成 8086/80888086/8088由两部分组成由两部分组成 总线接口单元总线接口单元BIUBIU 功能:取指令、取操作数、保存结果功能:取指令、取操作数、保存结果

10、 执行单元执行单元EUEU 功能:执行指令功能:执行指令 总线接口单元总线接口单元 地址总线地址总线 数据总线数据总线 系统系统 总线总线 主存储器主存储器 控制总线控制总线 I/O接口接口I/O接口接口 I/O设备设备I/O设备设备 执行单元执行单元 CPU 软件学院软件学院 12 内部暂存器内部暂存器 IP ES SS DS CS 输入输入/ /输出输出 控制电路控制电路 外部总线外部总线 执行部分执行部分 控制电路控制电路 1 2 3 4 5 6 ALU 标志寄存器标志寄存器 AH AL BH BL CH CL DH DL BP SI DI SP 地址加法器地址加法器 指令队列缓冲器指令

11、队列缓冲器 执行部件(执行部件(EU)EU)总线接口部件(总线接口部件(BIU)BIU) 16位位 20位位 16位位 Intel Intel 80868086处理器的内部结构框图处理器的内部结构框图 1616位内部数据总线位内部数据总线 20 位位 地地 址址 线线 8位位 DB AB 软件学院软件学院 13 ( (一一) )总线接口单元总线接口单元BIUBIU 总线接口单元总线接口单元BIUBIU的功能是负责完成的功能是负责完成CPUCPU与存与存 储器或储器或I IO O设备之间的数据传送。其具体任务是设备之间的数据传送。其具体任务是 :BIUBIU要从内存取指令送到指令队列缓冲器;要从

12、内存取指令送到指令队列缓冲器;CPUCPU 执行指令时,总线接口单元要配合执行单元从指执行指令时,总线接口单元要配合执行单元从指 定的内存单元或者外设端口中取数据,将数据传定的内存单元或者外设端口中取数据,将数据传 送给执行单元,或者把执行单元的操作结果传送送给执行单元,或者把执行单元的操作结果传送 到指定的内存单元或外设端口中。到指定的内存单元或外设端口中。 BIU BIU内有内有4 4个个1616位段地址寄存器位段地址寄存器CS(CS(代码段寄代码段寄 存器存器) )、DS(DS(数据段寄存器数据段寄存器) )、SS(SS(堆栈段寄存器堆栈段寄存器) )和和 ES(ES(附加段寄存器附加段

13、寄存器) ),1616位指令指针位指令指针IPIP,6 6字节指令字节指令 队列缓冲器,队列缓冲器,2020位地址加法器和总线控制电路。位地址加法器和总线控制电路。 软件学院软件学院 14 1.1.指令队列缓冲器指令队列缓冲器: 80868086的指令队列为的指令队列为6 6个字节,而个字节,而80888088的指令队列的指令队列 为为4 4个字节。在执行指令的同时,从内存中取下面个字节。在执行指令的同时,从内存中取下面1 1 条或几条指令,取来的指令依次放在指令队列中。条或几条指令,取来的指令依次放在指令队列中。 “先进先出先进先出”的原则:的原则: (1) (1) 取指时当指令队列缓冲器中

14、存满取指时当指令队列缓冲器中存满1 1条指令后,条指令后,EUEU 执行。执行。 (2) (2) 指令队列缓冲器中只要空出指令队列缓冲器中只要空出2 2个个( (对对8086)8086)或空出或空出 1 1个个( (对对8088)8088)指令字节时,指令字节时,BIUBIU自动执行取指操作,自动执行取指操作, 直到填满。直到填满。 软件学院软件学院 15 (3)(3)在在EUEU执行指令的过程中,指令需要对存储器或执行指令的过程中,指令需要对存储器或I I O O设备存取数据时,设备存取数据时,BIUBIU将在执行完现行取指的存储将在执行完现行取指的存储 器周期后的下一个存储器周期,对指定的

15、内存单元器周期后的下一个存储器周期,对指定的内存单元 或或I IO O设备进行存取操作设备进行存取操作, ,交换的数据经交换的数据经BIUBIU由由EUEU进进 行处理。行处理。 (4)(4)当当EUEU执行完转移、调用和返回指令时,则要清除执行完转移、调用和返回指令时,则要清除 指令队列缓冲器,并要求指令队列缓冲器,并要求BIUBIU从新的地址重新开始从新的地址重新开始 取指令,新取的第取指令,新取的第1 1条指令将直接经指令队列送到条指令将直接经指令队列送到 EUEU去执行,随后取来的指令将填入指令队列缓冲器去执行,随后取来的指令将填入指令队列缓冲器 。 软件学院软件学院 16 2.2.地

16、址加法器和段寄存器:地址加法器和段寄存器: 80868086有有2020根地址线,内部寄存器有根地址线,内部寄存器有1616位,采位,采 用了用了1616位的段寄存器与位的段寄存器与1616位的偏移地址即位的偏移地址即“段加段加 偏移偏移”的技术。的技术。 利用各段寄存器分别来存放确定各段的起始利用各段寄存器分别来存放确定各段的起始 地址的地址的1616位段地址信息,而由位段地址信息,而由IPIP提供或由提供或由EUEU按寻按寻 址方式计算出寻址单元的址方式计算出寻址单元的1616位偏移地址位偏移地址( (又称为逻又称为逻 辑地址或简称为偏移量辑地址或简称为偏移量) ),然后,将它与左移,然后

17、,将它与左移4 4位位 后的段寄存器的内容同时送到地址加法器进行相后的段寄存器的内容同时送到地址加法器进行相 加,最后形成一个加,最后形成一个2020位的实际地址位的实际地址( (又称为物理地又称为物理地 址址) ),以对存储单元寻址。,以对存储单元寻址。 软件学院软件学院 17 3.3.1616位指令指针位指令指针IPIP (Instruction Pointer)(Instruction Pointer) 其功能与其功能与8 8位位CPUCPU中的中的PCPC类类 似。正常运行时似。正常运行时,IP,IP中含有中含有BIUBIU 要取的下要取的下1 1条指令条指令( (字节字节) ) 的偏

18、的偏 移地址。移地址。IPIP在程序运行中能自在程序运行中能自 动加动加1 1修正修正, ,使之指向要执行的使之指向要执行的 下下1 1条指令条指令( (字节字节) ) 。有些指令。有些指令 能使能使IPIP值改变或使值改变或使IPIP值压进堆值压进堆 栈,或由堆栈弹出恢复原值。栈,或由堆栈弹出恢复原值。 软件学院软件学院 18 执行单元执行单元EUEU并不与系统的总线控制电并不与系统的总线控制电 路直接相连路直接相连, ,这使得它能与总线接口单元之这使得它能与总线接口单元之 间保持既相互联系又相互独立的关系。间保持既相互联系又相互独立的关系。 功能只是负责执行指令;执行的指令从功能只是负责执

19、行指令;执行的指令从 BIUBIU的指令队列缓冲器中取得,执行指令的的指令队列缓冲器中取得,执行指令的 结果或执行指令所需要的数据,都由结果或执行指令所需要的数据,都由EUEU向向 BIUBIU发出请求,再由发出请求,再由BIUBIU经总线控制电路对经总线控制电路对 存储器或外设存取。存储器或外设存取。EUEU由下列部分组成。由下列部分组成。 ( (二二) )执行单元执行单元EUEU 软件学院软件学院 19 1. 161. 16位算术逻辑单元位算术逻辑单元(ALU)(ALU): 它可以用于进行算术、逻辑运算,也可以按它可以用于进行算术、逻辑运算,也可以按 指令的寻址方式计算出寻址单元的指令的寻

20、址方式计算出寻址单元的1616位偏移量。位偏移量。 2. 162. 16位标志寄存器位标志寄存器F F: 它用来反映它用来反映CPUCPU运算的状态特征或存放控制标运算的状态特征或存放控制标 志。志。 3. 3. 数据暂存寄存器:数据暂存寄存器: 它协助它协助ALUALU完成运算,暂存参加运算的数据。完成运算,暂存参加运算的数据。 4. 4. 通用寄存器组:通用寄存器组: 它包括它包括4 4个个1616位数据寄存器位数据寄存器AXAX、BXBX、CXCX、DXDX和和 4 4个个1616位指针与变址寄存器位指针与变址寄存器SPSP、BPBP与与SISI、DIDI。 软件学院软件学院 20 5.

21、 EU5. EU控制电路:控制电路: 它是控制、定时与状态逻辑电路,接收从它是控制、定时与状态逻辑电路,接收从BIUBIU 中指令队列取来的指令中指令队列取来的指令, ,经过指令译码形成各种定经过指令译码形成各种定 时控制信号,对时控制信号,对EUEU的各个部件实现特定的定时操的各个部件实现特定的定时操 作。作。 EUEU中所有的寄存器和数据通道中所有的寄存器和数据通道( (除队列总线为除队列总线为8 8 位外位外) )都是都是1616位的宽度,可实现数据的快速传送。位的宽度,可实现数据的快速传送。 8088CPU8088CPU内部结构与内部结构与80868086的基本相似,只是的基本相似,只

22、是 8088BIU8088BIU中指令队列长度为中指令队列长度为4 4个字节;个字节;8088BIU8088BIU通过总通过总 线控制电路与外部交换数据的总线宽度是线控制电路与外部交换数据的总线宽度是8 8位,总位,总 线控制电路与专用寄存器组之间的数据总线宽度线控制电路与专用寄存器组之间的数据总线宽度 也是也是8 8位。位。 软件学院软件学院 21 3.1.2 80X863.1.2 80X86的寄存器结构的寄存器结构( (重点重点) ) 可见寄存器可见寄存器 应用程序中由指令进行访问的寄存器。应用程序中由指令进行访问的寄存器。 通用寄存器:通用寄存器:8 8个个 段寄存器:段寄存器:4 4个

23、个 专用寄存器:专用寄存器:2 2个个 软件学院软件学院 22 8086/80888086/8088内部寄存器内部寄存器 AHAX AL 累加寄存器累加寄存器 BHBX BL 基址寄存器基址寄存器 CHCX CL 计数寄存器计数寄存器 DHDX DL 数据寄存器数据寄存器 SP堆栈指针寄存器堆栈指针寄存器 BP基址指针寄存器基址指针寄存器 SI源变址寄存器源变址寄存器 DI目的变址寄存器目的变址寄存器 8 个个 16 位位 通通 用用 寄寄 存存 器器 4个个 16位位 段寄段寄 存器存器 CS代码段寄存器代码段寄存器 DS数据段寄存器数据段寄存器 SS堆栈段寄存器堆栈段寄存器 ES附加段寄存

24、器附加段寄存器 2个个 16位位 控制控制 寄存寄存 器器 IP指令指针寄存器指令指针寄存器 FR标志寄存器标志寄存器 按照功能分类,将按照功能分类,将1414个内部寄存器分为三组个内部寄存器分为三组 数数 据据 寄寄 存存 器器 掌握掌握 软件学院软件学院 23 1. 1. 通用寄存器通用寄存器 AX(accumulator)AX(accumulator)累加器累加器:算术运算,乘除指令中指定:算术运算,乘除指令中指定 存放操作数,存放操作数,I/OI/O指令使用指令使用AXAX与外设传送信息与外设传送信息 BX(base)BX(base)基址寄存器:基址寄存器:除通用外,计算存储器地址时,

25、除通用外,计算存储器地址时, 用作基址寄存器用作基址寄存器 CX(count)CX(count)计数器:计数器:除通用外,保存计数除通用外,保存计数( (移位、循环等移位、循环等 指令中的计数器指令中的计数器) ) DX(data)DX(data)数据寄存器:数据寄存器:除通用外,在双字长运算中,除通用外,在双字长运算中,DXDX 和和AXAX组合保存双字长数,组合保存双字长数,DXDX存放高存放高1616位;或存放外设端位;或存放外设端 口地址口地址 特点:特点: 可作可作1616位寄存器使用,也可拆成位寄存器使用,也可拆成2 2个独立的个独立的8 8位寄存器位寄存器 具有良好的通用性:在程

26、序中即可存放操作数,也可具有良好的通用性:在程序中即可存放操作数,也可 存放操作结果存放操作结果 (1) 数据寄存器数据寄存器 掌握掌握 软件学院软件学院 24 数据寄存器举例数据寄存器举例 例如:例如: 在指令中指明使用在指令中指明使用 ADD AXADD AX,BXBX MOV BL MOV BL,ALAL 例如:例如: 在指令中特定使用在指令中特定使用CLCL SHL AX SHL AX,CL; CL; 逻辑左移逻辑左移(CL)(CL)位位 例如:例如: 在指令中隐含使用在指令中隐含使用ALAL MUL BL MUL BL;无符号乘法;无符号乘法;(AX)=(AL);(AX)=(AL)(

27、BL)(BL) 软件学院软件学院 25 (2) (2) 指针及变址寄存器指针及变址寄存器 变址寄存器:变址寄存器:存储器寻址时,与数据段寄存器联用,提存储器寻址时,与数据段寄存器联用,提 供偏移地址;只能以字的形式访问。供偏移地址;只能以字的形式访问。 SISI(Source Index) (Source Index) 源变址寄存器源变址寄存器 DIDI(Destination Index) (Destination Index) 目的变址寄存器目的变址寄存器 指针寄存器指针寄存器: : SPSP(Stack Point)(Stack Point)堆栈指针寄存器,存放堆栈段中栈顶单堆栈指针寄存

28、器,存放堆栈段中栈顶单 元的偏移量元的偏移量 BPBP(Base Point)(Base Point)基址指针寄存器,存放堆栈段中某个单元基址指针寄存器,存放堆栈段中某个单元 的全部的全部/ /部分偏移量,也可存放部分偏移量,也可存放1616位操作数或结果位操作数或结果. . 也可用于存放操作数,但只能作为也可用于存放操作数,但只能作为1616位位R R使用使用 掌握掌握 软件学院软件学院 26 3.1.2.2 3.1.2.2 段寄存器段寄存器 CSCS:代码段寄存器:代码段寄存器对应的段存放指令代码对应的段存放指令代码 DSDS:数据段寄存器:数据段寄存器对应的段存放数据或变量对应的段存放数

29、据或变量 SSSS:堆栈段寄存器:堆栈段寄存器对应的段存放栈操作的数据对应的段存放栈操作的数据 ESES:附加段寄存器:附加段寄存器对应的段存放数据或变量对应的段存放数据或变量 w存储器是按段进行组织的,段寄存器就是用存储器是按段进行组织的,段寄存器就是用 来存放段基值的(段起始地址的高来存放段基值的(段起始地址的高1616位)。位)。 掌握掌握 软件学院软件学院 27 需执行的程序通常分为需执行的程序通常分为4个段:个段: 代码段代码段、数据段数据段、堆栈段堆栈段、附加段附加段 00000 代码段代码段 FFFFF H CS DS SS ES 1616位段寄存器位段寄存器 代码段寄存器代码段

30、寄存器 数据段寄存器数据段寄存器 堆栈段寄存器堆栈段寄存器 附加段寄存器附加段寄存器 注意:段寄存器的功能不能互换!注意:段寄存器的功能不能互换! 数据段数据段 堆栈段堆栈段 段基址段基址 段基址段基址 段基址段基址 段基址段基址 附加段附加段 软件学院软件学院 28 3 3. .1 1.2.2.3 3 专用寄存器专用寄存器 8086/8088/802868086/8088/80286: 1616位寄存器位寄存器 l指令指针寄存器指令指针寄存器IPIP l标志寄存器标志寄存器F F 8038680386及其后继机型(了解)及其后继机型(了解) 3232位寄存器位寄存器 l指令指针寄存器指令指针

31、寄存器EIPEIP l标志寄存器标志寄存器EFLAGESEFLAGES 软件学院软件学院 29 软件学院软件学院 30 3 3. .1 1.2.2.3 3 专用寄存器专用寄存器IPIP或或EIPEIP IP (Instruction Pointer)IP (Instruction Pointer)指令指针寄存器指令指针寄存器IP IP n指示代码段中指令的偏移地址指示代码段中指令的偏移地址 n它与代码段寄存器它与代码段寄存器CSCS联用,确定下一条指令的物理地址联用,确定下一条指令的物理地址 物理地址物理地址=(CS)=(CS)16D + (IP)16D + (IP) n计算机通过计算机通过

32、CS:IP CS:IP 寄存器来控制指令序列的执行流程寄存器来控制指令序列的执行流程 n不能对不能对IPIP指针直接进行访问指针直接进行访问 CS IP 0000 CPU + 00000H FFFFFH 代码段段基址代码段段基址 偏移量偏移量IP 01010010 00010010 正在执行的指令正在执行的指令 下一条指令下一条指令 掌握掌握 软件学院软件学院 31 3.1.2.3 3.1.2.3 专用寄存器专用寄存器标志寄存器标志寄存器F F 标志标志(FlagFlag)用于反映)用于反映指令执行结果的情况指令执行结果的情况或或控制指令的执行控制指令的执行 方式方式 又称又称程序状态字寄存器

33、程序状态字寄存器(program status word,PSW)program status word,PSW)。 软件学院软件学院 32 (1 1)条件(状态)标志)条件(状态)标志 记录程序运行结果的状态信息。主要包含:记录程序运行结果的状态信息。主要包含: 符号标志符号标志SF SF 零标志零标志ZFZF 辅助进位辅助进位AF AF 奇偶标志奇偶标志PFPF 进位标志进位标志CF CF 溢出标志溢出标志OFOF (2 2)控制标志)控制标志 方向标志方向标志DFDF:用于串处理指令:用于串处理指令 (3 3)系统标志)系统标志 中断允许标志中断允许标志IFIF:IF=1,CPUIF=1

34、,CPU允许中断,否则关闭中断允许中断,否则关闭中断 陷阱陷阱( (或跟踪或跟踪) )标志标志TFTF:TF=1TF=1,机器进入单步工作方式;,机器进入单步工作方式; TF=0TF=0,机器处于连续工作方式,机器处于连续工作方式 3.1.2.3 3.1.2.3 标志寄存器标志寄存器 OF DF IF TF SF ZF AF PF CF 掌握掌握 软件学院软件学院 33 例例 某某CPU内含内含 8位运算器位运算器,则:,则: 参加运算的数及结果均以参加运算的数及结果均以 8位位 表示表示, , 最高位产生的进位或借位在最高位产生的进位或借位在8位运算器位运算器中不保存,中不保存, 而将其保存

35、到而将其保存到标志寄存器标志寄存器中。中。 1 0 1 1 0 1 0 1 被加数被加数8位位 + + 1 0 0 0 1 1 1 1 加数加数8位位 进位进位 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 和和8位位 PSW 标志寄存器标志寄存器 运运 算算 器器 标志标志 寄存器寄存器 运运 算算 器器 被加数被加数 加数加数 和和 进位进位 掌握掌握 软件学院软件学院 34 l进位标志进位标志CFCF(Carry FlagCarry Flag) 记录运算时从记录运算时从最高有效位最高有效位( (字节第字节第7 7位,字第位,字第1515位位) )产生产生 的进的进/ /借位

36、值借位值 例如:执行指令:例如:执行指令:ADD AL,ADD AL,BLBL 3AH + 7CH3AH + 7CHB6HB6H,没有进位:,没有进位:CF = 0CF = 0 AAH + 7CHAAH + 7CH(1 1)26H26H,有进位:,有进位:CF = 1CF = 1 0NC没有产生进没有产生进/借位借位 1CY有进有进/借位产生借位产生 CF= OF DF IF TF SF ZF AF PF CF 掌握掌握 软件学院软件学院 35 l溢出标志溢出标志OFOF(Overflow FlagOverflow Flag) 算术运算中,带符号数的运算结果超出了算术运算中,带符号数的运算结果

37、超出了8 8位或位或1616位带符位带符 号数能表达的范围,则号数能表达的范围,则OF=1OF=1,否则,否则OF=0OF=0。 8 8位(字节)运算位(字节)运算 -128 +127-128 +127 1616位(字)位(字) 运算运算 -32768 +32767-32768 +32767 即即: :表明补码的运算结果是否有溢出表明补码的运算结果是否有溢出 0NV 没有溢出没有溢出 1OV 溢出溢出 OF=OF= 例:例:执行指令:执行指令: ADD AL,ADD AL,BLBL 3AH + 7CH3AH + 7CHB6HB6H,产生溢出:,产生溢出:OF = 1OF = 1 AAH + 7

38、CHAAH + 7CH(1 1)26H26H,没有溢出:,没有溢出:OF = 0OF = 0 掌握掌握 软件学院软件学院 36 l溢出和进位的比较溢出和进位的比较 溢出标志溢出标志OFOF和进位标志和进位标志CFCF是两个意义不同的标志是两个意义不同的标志 进位标志表示进位标志表示无符号数运算无符号数运算结果是否超出范围,运算结果是否超出范围,运算 结果仍然正确;结果仍然正确; 溢出标志表示溢出标志表示有符号数运算有符号数运算结果是否超出范围,如溢结果是否超出范围,如溢 出,运算结果已经不正确。出,运算结果已经不正确。 掌握掌握 软件学院软件学院 37 l如何运用溢出和进位如何运用溢出和进位

39、处理器对两个操作数进行运算时,按照无符号数求得结果处理器对两个操作数进行运算时,按照无符号数求得结果 ,并相应设置进位标志,并相应设置进位标志CFCF;同时,根据是否超出有符号数;同时,根据是否超出有符号数 的范围设置溢出标志的范围设置溢出标志OFOF。 ( (规则规则1)1)当同号操作数相加并且结果符号与加数相反时,当同号操作数相加并且结果符号与加数相反时,OF=1OF=1 正正+ +正正= =负负 负负+ +负负= =正正 当同号操作数相减时,当同号操作数相减时,OF=0OF=0 当异号操作数数相加时,当异号操作数数相加时,OF=0OF=0 当异号操作数相减时,可看作同号操作数相加,根据规

40、则当异号操作数相减时,可看作同号操作数相加,根据规则1 1判断判断 应该利用哪个标志,则由程序员来决定。应该利用哪个标志,则由程序员来决定。 操作数是无符号数,应该关心进位标志操作数是无符号数,应该关心进位标志CFCF; 操作数是有符号数,要注意溢出标志操作数是有符号数,要注意溢出标志OF OF 。 掌握掌握 软件学院软件学院 38 例例1 1:8 8位加法位加法3AH + 7CH3AH + 7CH? ? CF=0 OF=1 l溢出和进位的比较溢出和进位的比较 00111010 (3AH) 00111010 (3AH) + 01111100 (7CH) + 01111100 (7CH) 101

41、1011010110110 B6HB6H 无符号数运算无符号数运算 58D58D 124D124D 182D182D B6HB6H 无进位无进位 范围内范围内 结果正确结果正确 有符号数运算有符号数运算 58D58D 124D124D 182D182D B6H=-01001001BB6H=-01001001B =-73D =-73D 有溢出有溢出 结果不正确结果不正确 软件学院软件学院 39 例例2 2:AAH + 7CH =AAH + 7CH =? AAH = 10011001AAH = 10011001 7CH = 011111007CH = 01111100 和和 =(1)0001010

42、1=(1)00010101 = 26H = 26H CF=1 OF=0 l溢出和进位的比较溢出和进位的比较 无符号数运算无符号数运算 170170 124124 294294 (126H)(126H) 有进位有进位 范围外范围外 结果需要修正结果需要修正 有符号数运算有符号数运算 8686 124124 3838 26H26H 无溢出无溢出 范围内范围内 结果正确结果正确 软件学院软件学院 40 若运算结果为若运算结果为0 0,则,则ZF = 1ZF = 1;否则;否则ZF = 0ZF = 0 0NZ结果非零结果非零 1ZR结果为零结果为零 ZF= 例:(执行指令:例:(执行指令: ADD A

43、L,ADD AL,BLBL) 3AH + 7CH3AH + 7CHB6HB6H,结果不是零:,结果不是零:ZF =0ZF =0 84H + 7CH84H + 7CH(1 1)00H00H,结果是零:,结果是零:ZF=1ZF=1 注意:注意:ZF=1ZF=1表示结果表示结果=0=0 OF DF IF TF SF ZF AF PF CF l零标志零标志ZFZF(Zero FlagZero Flag) 掌握掌握 软件学院软件学院 41 符号标志符号标志SFSF(Sign FlagSign Flag) 表明有符号数运算结果的正负表明有符号数运算结果的正负 0PL结果为正结果为正 1NG结果为负结果为负

44、 SF= 有符号数据用最高有效位表示数据的符号。有符号数据用最高有效位表示数据的符号。 所以,最高有效位就是符号标志的状态所以,最高有效位就是符号标志的状态 3AH + 7CH3AH + 7CHB6HB6H,最高位,最高位D D7 71 1:SF = 1SF = 1 84H + 7CH84H + 7CH(1 1)00H00H,最高位,最高位D D7 70 0:SF = 0SF = 0 OF DF IF TF SF ZF AF PF CF 掌握掌握 软件学院软件学院 42 l奇偶标志奇偶标志PFPF(Parity FlagParity Flag) 表明运算结果表明运算结果最低字节最低字节中中1

45、1的个数的奇偶的个数的奇偶 0 0POPO 1 1的个数为奇数的个数为奇数 1 1PEPE 1 1的个数为偶数的个数为偶数 PF=PF= 例:例:3AH + 7CH3AH + 7CHB6HB6H10110110B10110110B 结果中有结果中有5 5个个1 1,是奇数:是奇数:PF = 0PF = 0 即使进行即使进行1616位字操作,位字操作,PFPF标志仅反映标志仅反映最低最低8 8位中位中 “1”1”的个数是偶或奇。的个数是偶或奇。 OF DF IF TF SF ZF AF PF CF 掌握掌握 软件学院软件学院 43 l辅助进位标志辅助进位标志AFAF 记录运算时低记录运算时低8

46、8位中低位中低4 4位(低半字节)向高位(低半字节)向高4 4位有无进位位有无进位 或借位或借位 0NA D3未产生进未产生进/借位借位 1AC D3产生进产生进/借位借位 AF= 3AH + 7CH3AH + 7CHB6HB6H,D D3 3有进位有进位? ? AFAF标志主要由处理器内部使用,用于十进制算术运标志主要由处理器内部使用,用于十进制算术运 算调整指令中,用户一般不必关心算调整指令中,用户一般不必关心 OF DF IF TF SF ZF AF PF CF 0011 10100011 1010 + 0111 1100+ 0111 1100 1011 0110 1011 0110 1

47、 掌握掌握 软件学院软件学院 44 l方向标志方向标志DFDF(Direction FlagDirection Flag) 用于串操作指令中,控制地址的变化方向用于串操作指令中,控制地址的变化方向 0 0UPUP存储器地址自动增量修改存储器地址自动增量修改 1 1DNDN存储器地址自动减量修改存储器地址自动减量修改 DF=DF= 当当DF=1DF=1时,每次操作后变址寄存器时,每次操作后变址寄存器SISI和和DIDI减小减小 当当DF=0DF=0时,每次操作后变址寄存器时,每次操作后变址寄存器SISI和和DIDI增大增大 CLDCLD指令复位方向标志:指令复位方向标志:DFDF0 0 STDS

48、TD指令置位方向标志:指令置位方向标志:DFDF1 1 OF DF IF TF SF ZF AF PF CF 掌握掌握 软件学院软件学院 45 l中断允许标志中断允许标志IFIF 用于开中断或屏蔽中断用于开中断或屏蔽中断 0 0DIDI关中断,禁止响应中断关中断,禁止响应中断 1 1EIEI开中断,允许响应中断开中断,允许响应中断 IF=IF= CLICLI指令复位中断标志:指令复位中断标志:IFIF0 0 STISTI指令置位中断标志:指令置位中断标志:IFIF1 1 OF DF IF TF SF ZF AF PF CF 掌握掌握 软件学院软件学院 46 l陷阱标志陷阱标志TFTF(Trap

49、 FlagTrap Flag) 用于控制处理器进入单步操作方式用于控制处理器进入单步操作方式 单步执行指令单步执行指令处理器在每条指令执行结束时,处理器在每条指令执行结束时, 便产生一个编号为便产生一个编号为1 1的内部中断的内部中断 这种内部中断称为单步中断这种内部中断称为单步中断 所以所以TFTF也称为单步标志也称为单步标志 n利用单步中断可对程序进行逐条指令的调试利用单步中断可对程序进行逐条指令的调试 n这种逐条指令调试程序的方法就是单步调试这种逐条指令调试程序的方法就是单步调试 OF DF IF TF SF ZF AF PF CF 0 0处理器正常工作处理器正常工作 1 1处理器单步执

50、行指令处理器单步执行指令 TF=TF= 软件学院软件学院 47 在调试程序时,在调试程序时,DEBUGDEBUG提供了测试标志位的手段,提供了测试标志位的手段, 用符号表示标志位的值,用符号表示标志位的值,每种标志位的符号如下表:每种标志位的符号如下表: 标志名标志名标志为1标志为1 标志为0标志为0 OF溢出(是/否)OF溢出(是/否)OVOVNVNV DF方向(减量/加量)DF方向(减量/加量)DNDNUPUP IF中断(允许/关闭)IF中断(允许/关闭)EIEIDIDI SF符号(负/正)SF符号(负/正)NGNGPLPL ZF零(是/否)ZF零(是/否)ZRZRNZNZ AF辅助进位(

51、是/否)AF辅助进位(是/否)ACACNANA PF奇偶标志( 偶/奇)PF奇偶标志( 偶/奇)PEPEPOPO CF进位标志(是/否)CF进位标志(是/否)CYCYNCNC DEBUG不提供不提供TF的符号的符号,用于单步方式操作。用于单步方式操作。 软件学院软件学院 48 例题例题 m=00111011B,n=01001010B,完成下列运算后,完成下列运算后, SF、ZF、PF、CF、AF、OF标志位的状态。标志位的状态。 (1)m+n (2) m-n (1)m+n 00111011 +01001010 10000101 符号符号SF= 零零ZF= 奇偶奇偶PF= 进位进位CF= 辅助进

52、位辅助进位AF= 溢出溢出OF= 1 0 0 0 1 1 (2)m-n 00111011 - 01001010 11110001 SF= ZF= PF= CF= AF= OF= 1 0 0 1 0 0 软件学院软件学院 49 AH AL BH BL CH CL DH DL SP BP DI SI IP FLAGS CS DS ES SS FS GS 32位位 16位位 32位名称位名称16位名称位名称 通用名称通用名称 AX 累加器累加器 BX 基址变址基址变址 CX 计数计数 堆栈指针堆栈指针 DX 数据数据 基址指针基址指针 目的变址目的变址 源变址源变址 指令指针指令指针 标志标志 代码

53、段代码段 数据段数据段 附加段附加段 堆栈段堆栈段 EAX EBX ECX EDX ESP EBP EDI ESI EIP EFLAGS 注:注: 1. 8086/80881. 8086/8088或或80286CPU80286CPU,图中,图中 阴影区寄存器不存在;阴影区寄存器不存在; 2. FS2. FS和和GSGS寄存器无专用名称。寄存器无专用名称。 小结小结 无专用名称无专用名称 80 x86的程序的程序 可见寄存器组可见寄存器组 软件学院软件学院 50 对任何一个微处理器来说对任何一个微处理器来说, , 为了从存储器中取为了从存储器中取 得指令或者与之传送数据得指令或者与之传送数据,

54、,都需要它的总线接口单都需要它的总线接口单 元执行一个总线周期。同时元执行一个总线周期。同时, ,以后我们会知道,在以后我们会知道,在 微机系统中,当选择一个存储器或微机系统中,当选择一个存储器或I/OI/O设备与微处设备与微处 理器接口之前理器接口之前, , 也必须了解系统总线的所谓时序也必须了解系统总线的所谓时序, , 而这些时序也是以总线周期为基准来描述的。因此而这些时序也是以总线周期为基准来描述的。因此 , ,在这里有必要介绍一下有关总线周期的概念。在这里有必要介绍一下有关总线周期的概念。 通常,包括通常,包括808680868088 CPU8088 CPU在内在内, ,一个最基本一个

55、最基本 的总线周期由的总线周期由4 4个时钟周期组成个时钟周期组成, ,时钟周期是时钟周期是CPUCPU的的 基本时间计量单位,它由基本时间计量单位,它由CPUCPU的主频决定。在一个的主频决定。在一个 最基本的总线周期中最基本的总线周期中, ,习惯上将习惯上将4 4个时钟周期分别称个时钟周期分别称 为为4 4个状态,即个状态,即T T 、 、T T 、 、T T 与 与T T 这 这4 4个状态。个状态。 3.1.3 3.1.3 总线周期的概念总线周期的概念 软件学院软件学院 51 下面以下面以808680868088CPU8088CPU为例,简要说明为例,简要说明CPUCPU在在4 4个状

56、态中的基本个状态中的基本 作用。作用。 在在T T 状态, 状态,CPUCPU往多路复用总线上发送地址信息,以选往多路复用总线上发送地址信息,以选 中所要寻址的存储单元或外设端口的地址。中所要寻址的存储单元或外设端口的地址。 在在T T 状态 状态,CPUCPU从总线上撤消地址从总线上撤消地址, ,并使总线的低并使总线的低1616位浮位浮 置成高阻状态,为传送数据做准备。总线的高置成高阻状态,为传送数据做准备。总线的高4 4位(位(A A A A )用来输出本总线周期状态信息。这些状 )用来输出本总线周期状态信息。这些状态信息用来表态信息用来表 示示CPUCPU是否允许中断、当前正在使用什么段

57、寄存器等。是否允许中断、当前正在使用什么段寄存器等。 在在T T 状态,多路总线的高 状态,多路总线的高4 4位继续提供状态信息位继续提供状态信息, ,而其低而其低 1616位(对位(对8088 CPU8088 CPU则为低则为低8 8位)上将出现由位)上将出现由CPUCPU写出的数据写出的数据 或者或者CPUCPU从存储器或端口读入的数据。从存储器或端口读入的数据。 软件学院软件学院 52 在有些情况下,由于外设或存储器的速度较慢,不能在有些情况下,由于外设或存储器的速度较慢,不能 及时地配合及时地配合CPUCPU传送数据。这时,外设或存储器就会通传送数据。这时,外设或存储器就会通 过过 “

58、 “READY”READY”的信号线在的信号线在T T3 3状态启动之前向状态启动之前向CPUCPU发一个发一个 “ “数据未准备好数据未准备好”信号,表示它们还来不及同信号,表示它们还来不及同CPUCPU之间之间 传传 送数据,于是,送数据,于是,CPUCPU会在会在T T3 3之后自动插入之后自动插入1 1个或多个附个或多个附 加的时钟周期加的时钟周期T Tw w,这个,这个T Tw w就叫就叫等待状态等待状态,它表示此时,它表示此时 CPUCPU在总线上的信息情况和在总线上的信息情况和T T3 3状态时的信息情况一样。状态时的信息情况一样。 只有在指定的存储器或外设已经完成数据传送时,它

59、只有在指定的存储器或外设已经完成数据传送时,它 们又通过们又通过“READY”READY”的信号线向的信号线向CPUCPU发出一个发出一个“准备好准备好” 信信 号,当号,当CPUCPU接收到这一信号后,才会自动脱离接收到这一信号后,才会自动脱离T Tw w状态而状态而 进入进入T T4 4状态。状态。 在在T T 状态,总线周期结 状态,总线周期结束。束。 软件学院软件学院 53 只有当只有当CPUCPU和存储器或和存储器或I/0I/0接口之间传送数接口之间传送数 据时据时, ,或者它正在填充指令队列缓冲器时或者它正在填充指令队列缓冲器时,CPU,CPU才执才执 行总线周期。如果行总线周期。

60、如果CPUCPU在执行一个总线周期之后在执行一个总线周期之后, , 并不立即执行下一个总线周期并不立即执行下一个总线周期, ,那么那么, ,系统总线就系统总线就 会处于空闲状态会处于空闲状态, ,此时,此时,CPUCPU将执行空闲周期。将执行空闲周期。 在空闲周期中在空闲周期中, ,可以包含可以包含1 1个或多个时钟周期个或多个时钟周期 。在此期间,。在此期间,CPUCPU在总线的高在总线的高4 4位上仍将驱动前一位上仍将驱动前一 个总线周期的状态信息,而且,如果前一个总线个总线周期的状态信息,而且,如果前一个总线 周期为写周期周期为写周期, ,则则CPUCPU会在总线的低会在总线的低1616

温馨提示

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

评论

0/150

提交评论