微机原理(课堂PPT)_第1页
微机原理(课堂PPT)_第2页
微机原理(课堂PPT)_第3页
微机原理(课堂PPT)_第4页
微机原理(课堂PPT)_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

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

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

3、038680386微处理器芯片构成的微机称为微处理器芯片构成的微机称为386386微机。微机。 由由P4P4微处理器芯片构成的微机称为微处理器芯片构成的微机称为P4P4微机微机。 软件学院软件学院53.1.0 Intel3.1.0 Intel微处理器发展概述微处理器发展概述 1968 年,罗伯特年,罗伯特诺伊斯(诺伊斯(Robert Noyce)、)、戈登戈登摩尔(摩尔(Gordon Moore)和安迪)和安迪格鲁夫格鲁夫(Andy Grove)在硅谷共同创立了英特尔公)在硅谷共同创立了英特尔公司。司。Only the Paranoid Survive!-Andy Grove了解了解 软件学院

4、软件学院63.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)指令比较完善,有了中断与指令比较完善,有了中断与DMADMA汇编、汇编、BASICBASIC、FORTRANFOR

5、TRANIntel 4004Intel 8085了解了解 软件学院软件学院73. 3. 第第3 3代微处理器代微处理器 Intel808616Intel808616位微处理器位微处理器(1978)(1978)Intel8088 Intel8088 准准1616位微处理器位微处理器(1979)(1979)Intel80286 Intel80286 高档高档1616位微处理器位微处理器(1982)(1982) 3.1.0 Intel3.1.0 Intel微处理器发展概述微处理器发展概述 了解了解 软件学院软件学院83.1.0 Intel3.1.0 Intel微处理器发展概述微处理器发展概述了解了解

6、 软件学院软件学院9IntelIntel公司生产的公司生产的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 16 20 10 1MB 无无 1979 8088 16 8 20 8 1MB 无无 1982 80286 16 16 24 16 16

7、MB 无无 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一级一级+512KB二级二级 1999 Pentium III 32 64 36 1000 64GB 32KB一级一级+512KB二级二级 2000 P

8、entium4 32 64 64 3600 224TB 128KB一级一级512KB二级二级 2005 Pentium4 EE 64 64 64 ? 224T B 三级高速缓存三级高速缓存 软件学院软件学院103.1.13.1.1内部结构内部结构1.1.算术逻辑部件算术逻辑部件ALUALU:执行算术和逻辑运算。执行算术和逻辑运算。2.2.控制器:控制器:负责对全机的控制。负责对全机的控制。3.3.寄存器寄存器: : 处理器中临时存储数据的基本逻辑部件。处理器中临时存储数据的基本逻辑部件。lCPUCPU的任务的任务: : 执行存放在存储器中的指令序列执行存放在存储器中的指令序列lCPUCPU的组

9、成的组成: : 运算器运算器+ +控制器控制器+ +高速缓存(高速缓存(386386开始)开始)lCPUCPU功能功能: : 取指令取指令 - - 分析指令分析指令 - - 执行指令执行指令 软件学院软件学院11中央处理机中央处理机CPUCPU的物理组成的物理组成8086/80888086/8088由两部分组成由两部分组成总线接口单元总线接口单元BIUBIU功能:取指令、取操作数、保存结果功能:取指令、取操作数、保存结果执行单元执行单元EUEU功能:执行指令功能:执行指令 总线接口单元总线接口单元地址总线地址总线数据总线数据总线系统系统总线总线主存储器主存储器控制总线控制总线I/O接口接口I/

10、O接口接口I/O设备设备I/O设备设备 执行单元执行单元 CPU 软件学院软件学院12内部暂存器内部暂存器 IP ES SS DS CS输入输入/ /输出输出控制电路控制电路外部总线外部总线执行部分执行部分控制电路控制电路1 2 3 4 5 6ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL BP SI DI SP地址加法器地址加法器指令队列缓冲器指令队列缓冲器执行部件(执行部件(EU)EU)总线接口部件(总线接口部件(BIU)BIU)16位位20位位16位位Intel Intel 80868086处理器的内部结构框图处理器的内部结构框图1616位内部数据总线位内部数据

11、总线20位位地地址址线线8位位DBAB 软件学院软件学院13( (一一) )总线接口单元总线接口单元BIUBIU 总线接口单元总线接口单元BIUBIU的功能是负责完成的功能是负责完成CPUCPU与存与存储器或储器或I IO O设备之间的数据传送。其具体任务是设备之间的数据传送。其具体任务是:BIUBIU要从内存取指令送到指令队列缓冲器;要从内存取指令送到指令队列缓冲器;CPUCPU执行指令时,总线接口单元要配合执行单元从指执行指令时,总线接口单元要配合执行单元从指定的内存单元或者外设端口中取数据,将数据传定的内存单元或者外设端口中取数据,将数据传送给执行单元,或者把执行单元的操作结果传送送给执

12、行单元,或者把执行单元的操作结果传送到指定的内存单元或外设端口中。到指定的内存单元或外设端口中。 BIU BIU内有内有4 4个个1616位段地址寄存器位段地址寄存器CS(CS(代码段寄代码段寄存器存器) )、DS(DS(数据段寄存器数据段寄存器) )、SS(SS(堆栈段寄存器堆栈段寄存器) )和和ES(ES(附加段寄存器附加段寄存器) ),1616位指令指针位指令指针IPIP,6 6字节指令字节指令队列缓冲器,队列缓冲器,2020位地址加法器和总线控制电路。位地址加法器和总线控制电路。 软件学院软件学院14 1.1.指令队列缓冲器指令队列缓冲器: 80868086的指令队列为的指令队列为6

13、6个字节,而个字节,而80888088的指令队列的指令队列为为4 4个字节。在执行指令的同时,从内存中取下面个字节。在执行指令的同时,从内存中取下面1 1条或几条指令,取来的指令依次放在指令队列中。条或几条指令,取来的指令依次放在指令队列中。“先进先出先进先出”的原则:的原则: (1) (1) 取指时当指令队列缓冲器中存满取指时当指令队列缓冲器中存满1 1条指令后,条指令后,EUEU执行。执行。 (2) (2) 指令队列缓冲器中只要空出指令队列缓冲器中只要空出2 2个个( (对对8086)8086)或空出或空出1 1个个( (对对8088)8088)指令字节时,指令字节时,BIUBIU自动执行

14、取指操作,自动执行取指操作,直到填满。直到填满。 软件学院软件学院15(3)(3)在在EUEU执行指令的过程中,指令需要对存储器或执行指令的过程中,指令需要对存储器或I IO O设备存取数据时,设备存取数据时,BIUBIU将在执行完现行取指的存储将在执行完现行取指的存储器周期后的下一个存储器周期,对指定的内存单元器周期后的下一个存储器周期,对指定的内存单元或或I IO O设备进行存取操作设备进行存取操作, ,交换的数据经交换的数据经BIUBIU由由EUEU进进行处理。行处理。(4)(4)当当EUEU执行完转移、调用和返回指令时,则要清除执行完转移、调用和返回指令时,则要清除指令队列缓冲器,并要

15、求指令队列缓冲器,并要求BIUBIU从新的地址重新开始从新的地址重新开始取指令,新取的第取指令,新取的第1 1条指令将直接经指令队列送到条指令将直接经指令队列送到EUEU去执行,随后取来的指令将填入指令队列缓冲器去执行,随后取来的指令将填入指令队列缓冲器。 软件学院软件学院162.2.地址加法器和段寄存器:地址加法器和段寄存器:80868086有有2020根地址线,内部寄存器有根地址线,内部寄存器有1616位,采位,采用了用了1616位的段寄存器与位的段寄存器与1616位的偏移地址即位的偏移地址即“段加段加偏移偏移”的技术。的技术。利用各段寄存器分别来存放确定各段的起始利用各段寄存器分别来存放

16、确定各段的起始地址的地址的1616位段地址信息,而由位段地址信息,而由IPIP提供或由提供或由EUEU按寻按寻址方式计算出寻址单元的址方式计算出寻址单元的1616位偏移地址位偏移地址( (又称为逻又称为逻辑地址或简称为偏移量辑地址或简称为偏移量) ),然后,将它与左移,然后,将它与左移4 4位位后的段寄存器的内容同时送到地址加法器进行相后的段寄存器的内容同时送到地址加法器进行相加,最后形成一个加,最后形成一个2020位的实际地址位的实际地址( (又称为物理地又称为物理地址址) ),以对存储单元寻址。,以对存储单元寻址。 软件学院软件学院173.3.1616位指令指针位指令指针IPIP(Inst

17、ruction Pointer)(Instruction Pointer) 其功能与其功能与8 8位位CPUCPU中的中的PCPC类类似。正常运行时似。正常运行时,IP,IP中含有中含有BIUBIU要取的下要取的下1 1条指令条指令( (字节字节) ) 的偏的偏移地址。移地址。IPIP在程序运行中能自在程序运行中能自动加动加1 1修正修正, ,使之指向要执行的使之指向要执行的下下1 1条指令条指令( (字节字节) ) 。有些指令。有些指令能使能使IPIP值改变或使值改变或使IPIP值压进堆值压进堆栈,或由堆栈弹出恢复原值。栈,或由堆栈弹出恢复原值。 软件学院软件学院18 执行单元执行单元EUE

18、U并不与系统的总线控制电并不与系统的总线控制电路直接相连路直接相连, ,这使得它能与总线接口单元之这使得它能与总线接口单元之间保持既相互联系又相互独立的关系。间保持既相互联系又相互独立的关系。 功能只是负责执行指令;执行的指令从功能只是负责执行指令;执行的指令从BIUBIU的指令队列缓冲器中取得,执行指令的的指令队列缓冲器中取得,执行指令的结果或执行指令所需要的数据,都由结果或执行指令所需要的数据,都由EUEU向向BIUBIU发出请求,再由发出请求,再由BIUBIU经总线控制电路对经总线控制电路对存储器或外设存取。存储器或外设存取。EUEU由下列部分组成。由下列部分组成。( (二二) )执行单

19、元执行单元EUEU 软件学院软件学院191. 161. 16位算术逻辑单元位算术逻辑单元(ALU)(ALU): 它可以用于进行算术、逻辑运算,也可以按它可以用于进行算术、逻辑运算,也可以按指令的寻址方式计算出寻址单元的指令的寻址方式计算出寻址单元的1616位偏移量。位偏移量。2. 162. 16位标志寄存器位标志寄存器F F: 它用来反映它用来反映CPUCPU运算的状态特征或存放控制标运算的状态特征或存放控制标志。志。3. 3. 数据暂存寄存器:数据暂存寄存器: 它协助它协助ALUALU完成运算,暂存参加运算的数据。完成运算,暂存参加运算的数据。4. 4. 通用寄存器组:通用寄存器组: 它包括

20、它包括4 4个个1616位数据寄存器位数据寄存器AXAX、BXBX、CXCX、DXDX和和4 4个个1616位指针与变址寄存器位指针与变址寄存器SPSP、BPBP与与SISI、DIDI。 软件学院软件学院205. EU5. EU控制电路:控制电路: 它是控制、定时与状态逻辑电路,接收从它是控制、定时与状态逻辑电路,接收从BIUBIU中指令队列取来的指令中指令队列取来的指令, ,经过指令译码形成各种定经过指令译码形成各种定时控制信号,对时控制信号,对EUEU的各个部件实现特定的定时操的各个部件实现特定的定时操作。作。EUEU中所有的寄存器和数据通道中所有的寄存器和数据通道( (除队列总线为除队列

21、总线为8 8位外位外) )都是都是1616位的宽度,可实现数据的快速传送。位的宽度,可实现数据的快速传送。8088CPU8088CPU内部结构与内部结构与80868086的基本相似,只是的基本相似,只是8088BIU8088BIU中指令队列长度为中指令队列长度为4 4个字节;个字节;8088BIU8088BIU通过总通过总线控制电路与外部交换数据的总线宽度是线控制电路与外部交换数据的总线宽度是8 8位,总位,总线控制电路与专用寄存器组之间的数据总线宽度线控制电路与专用寄存器组之间的数据总线宽度也是也是8 8位。位。 软件学院软件学院213.1.2 80X863.1.2 80X86的寄存器结构的

22、寄存器结构( (重点重点) )可见寄存器可见寄存器应用程序中由指令进行访问的寄存器。应用程序中由指令进行访问的寄存器。通用寄存器:通用寄存器:8 8个个段寄存器:段寄存器:4 4个个专用寄存器:专用寄存器:2 2个个 软件学院软件学院228086/80888086/8088内部寄存器内部寄存器 AHAX AL 累加寄存器累加寄存器 BHBX BL 基址寄存器基址寄存器 CHCX CL 计数寄存器计数寄存器 DHDX DL 数据寄存器数据寄存器 SP堆栈指针寄存器堆栈指针寄存器 BP基址指针寄存器基址指针寄存器 SI源变址寄存器源变址寄存器 DI目的变址寄存器目的变址寄存器8个个16位位通通用用

23、寄寄存存器器4个个16位位段寄段寄存器存器CS代码段寄存器代码段寄存器 DS数据段寄存器数据段寄存器SS堆栈段寄存器堆栈段寄存器 ES附加段寄存器附加段寄存器2个个16位位控制控制寄存寄存器器IP指令指针寄存器指令指针寄存器 FR标志寄存器标志寄存器按照功能分类,将按照功能分类,将1414个内部寄存器分为三组个内部寄存器分为三组数数据据寄寄存存器器掌握掌握 软件学院软件学院231. 1. 通用寄存器通用寄存器 AX(accumulator)AX(accumulator)累加器累加器:算术运算,乘除指令中指定:算术运算,乘除指令中指定存放操作数,存放操作数,I/OI/O指令使用指令使用AXAX与

24、外设传送信息与外设传送信息 BX(base)BX(base)基址寄存器:基址寄存器:除通用外,计算存储器地址时,除通用外,计算存储器地址时,用作基址寄存器用作基址寄存器 CX(count)CX(count)计数器:计数器:除通用外,保存计数除通用外,保存计数( (移位、循环等移位、循环等指令中的计数器指令中的计数器) ) DX(data)DX(data)数据寄存器:数据寄存器:除通用外,在双字长运算中,除通用外,在双字长运算中,DXDX和和AXAX组合保存双字长数,组合保存双字长数,DXDX存放高存放高1616位;或存放外设端位;或存放外设端口地址口地址 特点:特点:可作可作1616位寄存器使

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

26、 BL MUL BL;无符号乘法;无符号乘法;(AX)=(AL);(AX)=(AL)(BL)(BL) 软件学院软件学院25(2) (2) 指针及变址寄存器指针及变址寄存器 变址寄存器:变址寄存器:存储器寻址时,与数据段寄存器联用,提存储器寻址时,与数据段寄存器联用,提供偏移地址;只能以字的形式访问。供偏移地址;只能以字的形式访问。SISI(Source Index) (Source Index) 源变址寄存器源变址寄存器DIDI(Destination Index) (Destination Index) 目的变址寄存器目的变址寄存器 指针寄存器指针寄存器: :SPSP(Stack Point

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

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

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

30、PEIPl标志寄存器标志寄存器EFLAGESEFLAGES 软件学院软件学院29 软件学院软件学院303 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计算机通过计算机通过 CS:IP CS:IP

31、寄存器来控制指令序列的执行流程寄存器来控制指令序列的执行流程n不能对不能对IPIP指针直接进行访问指针直接进行访问CSIP0000CPU+00000HFFFFFH代码段段基址代码段段基址偏移量偏移量IP0101001000010010正在执行的指令正在执行的指令下一条指令下一条指令掌握掌握 软件学院软件学院313.1.2.3 3.1.2.3 专用寄存器专用寄存器标志寄存器标志寄存器F F标志标志(FlagFlag)用于反映)用于反映指令执行结果的情况指令执行结果的情况或或控制指令的执行控制指令的执行方式方式又称又称程序状态字寄存器程序状态字寄存器(program status word,PSW

32、)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,CPU允许中断,否则关闭中断允许中断,否则关闭中断 陷阱陷阱( (或跟踪或跟踪

33、) )标志标志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位运算器位运算器中不保存,中不保存,而将其保存到而将其保存到标志寄存器标志寄存器中。中。 1 0 1 1 0 1 0 1 被加数被加数8位位

34、 + + 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标志寄存器标志寄存器运运算算器器标志标志寄存器寄存器运运算算器器被加数被加数加数加数和和进位进位掌握掌握 软件学院软件学院34l进位标志进位标志CFCF(Carry FlagCarry Flag)记录运算时从记录运算时从最高有效位最高有效位( (字节第字节第7 7位,字第位,字第1515位位) )产生产生的进的进/ /借位值借位值例如:执行指令:例如:执行指令:ADD AL,ADD AL,BLBL3AH + 7CH3AH + 7CHB6HB6H,没有进位

35、:,没有进位:CF = 0CF = 0AAH + 7CHAAH + 7CH(1 1)26H26H,有进位:,有进位:CF = 1CF = 10NC没有产生进没有产生进/借位借位1CY有进有进/借位产生借位产生CF= OF DF IF TF SF ZF AF PF CF掌握掌握 软件学院软件学院35l溢出标志溢出标志OFOF(Overflow FlagOverflow Flag)算术运算中,带符号数的运算结果超出了算术运算中,带符号数的运算结果超出了8 8位或位或1616位带符位带符号数能表达的范围,则号数能表达的范围,则OF=1OF=1,否则,否则OF=0OF=0。8 8位(字节)运算位(字节

36、)运算 -128 +127-128 +1271616位(字)位(字) 运算运算 -32768 +32767-32768 +32767即即: :表明补码的运算结果是否有溢出表明补码的运算结果是否有溢出0NV 没有溢出没有溢出1OV 溢出溢出OF=OF=例:例:执行指令:执行指令: ADD AL,ADD AL,BLBL3AH + 7CH3AH + 7CHB6HB6H,产生溢出:,产生溢出:OF = 1OF = 1AAH + 7CHAAH + 7CH(1 1)26H26H,没有溢出:,没有溢出:OF = 0OF = 0掌握掌握 软件学院软件学院36l溢出和进位的比较溢出和进位的比较 溢出标志溢出标志

37、OFOF和进位标志和进位标志CFCF是两个意义不同的标志是两个意义不同的标志 进位标志表示进位标志表示无符号数运算无符号数运算结果是否超出范围,运算结果是否超出范围,运算结果仍然正确;结果仍然正确; 溢出标志表示溢出标志表示有符号数运算有符号数运算结果是否超出范围,如溢结果是否超出范围,如溢出,运算结果已经不正确。出,运算结果已经不正确。掌握掌握 软件学院软件学院37l如何运用溢出和进位如何运用溢出和进位处理器对两个操作数进行运算时,按照无符号数求得结果处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志,并相应设置进位标志CFCF;同时,根据是否超出有符号数;同时,根据是否

38、超出有符号数的范围设置溢出标志的范围设置溢出标志OFOF。( (规则规则1)1)当同号操作数相加并且结果符号与加数相反时,当同号操作数相加并且结果符号与加数相反时,OF=1OF=1正正+ +正正= =负负 负负+ +负负= =正正当同号操作数相减时,当同号操作数相减时,OF=0OF=0当异号操作数数相加时,当异号操作数数相加时,OF=0OF=0当异号操作数相减时,可看作同号操作数相加,根据规则当异号操作数相减时,可看作同号操作数相加,根据规则1 1判断判断应该利用哪个标志,则由程序员来决定。应该利用哪个标志,则由程序员来决定。操作数是无符号数,应该关心进位标志操作数是无符号数,应该关心进位标志

39、CFCF;操作数是有符号数,要注意溢出标志操作数是有符号数,要注意溢出标志OF OF 。掌握掌握 软件学院软件学院38例例1 1:8 8位加法位加法3AH + 7CH3AH + 7CH? ?CF=0OF=1l溢出和进位的比较溢出和进位的比较 00111010 (3AH) 00111010 (3AH) + 01111100 (7CH) + 01111100 (7CH) 1011011010110110 B6HB6H无符号数运算无符号数运算 58D58D 124D124D 182D182D B6HB6H 无进位无进位 范围内范围内 结果正确结果正确有符号数运算有符号数运算 58D58D 124D1

40、24D 182D182DB6H=-01001001BB6H=-01001001B =-73D =-73D 有溢出有溢出结果不正确结果不正确 软件学院软件学院39例例2 2:AAH + 7CH =AAH + 7CH =?AAH = 10011001AAH = 100110017CH = 011111007CH = 01111100 和和 =(1)00010101=(1)00010101 = 26H = 26HCF=1OF=0l溢出和进位的比较溢出和进位的比较无符号数运算无符号数运算 170170 124124 294294(126H)(126H) 有进位有进位 范围外范围外结果需要修正结果需要修

41、正有符号数运算有符号数运算 8686 124124 3838 26H26H 无溢出无溢出 范围内范围内 结果正确结果正确 软件学院软件学院40若运算结果为若运算结果为0 0,则,则ZF = 1ZF = 1;否则;否则ZF = 0ZF = 00NZ结果非零结果非零1ZR结果为零结果为零ZF=例:(执行指令:例:(执行指令: ADD AL,ADD AL,BLBL)3AH + 7CH3AH + 7CHB6HB6H,结果不是零:,结果不是零:ZF =0ZF =084H + 7CH84H + 7CH(1 1)00H00H,结果是零:,结果是零:ZF=1ZF=1 注意:注意:ZF=1ZF=1表示结果表示结

42、果=0=0 OF DF IF TF SF ZF AF PF CFl零标志零标志ZFZF(Zero FlagZero Flag)掌握掌握 软件学院软件学院41符号标志符号标志SFSF(Sign FlagSign Flag)表明有符号数运算结果的正负表明有符号数运算结果的正负0PL结果为正结果为正1NG结果为负结果为负SF= 有符号数据用最高有效位表示数据的符号。有符号数据用最高有效位表示数据的符号。所以,最高有效位就是符号标志的状态所以,最高有效位就是符号标志的状态3AH + 7CH3AH + 7CHB6HB6H,最高位,最高位D D7 71 1:SF = 1SF = 184H + 7CH84H

43、 + 7CH(1 1)00H00H,最高位,最高位D D7 70 0:SF = 0SF = 0 OF DF IF TF SF ZF AF PF CF掌握掌握 软件学院软件学院42l奇偶标志奇偶标志PFPF(Parity FlagParity Flag)表明运算结果表明运算结果最低字节最低字节中中1 1的个数的奇偶的个数的奇偶0 0POPO 1 1的个数为奇数的个数为奇数1 1PEPE 1 1的个数为偶数的个数为偶数PF=PF=例:例:3AH + 7CH3AH + 7CHB6HB6H10110110B10110110B结果中有结果中有5 5个个1 1,是奇数:是奇数:PF = 0PF = 0即使

44、进行即使进行1616位字操作,位字操作,PFPF标志仅反映标志仅反映最低最低8 8位中位中“1”1”的个数是偶或奇。的个数是偶或奇。 OF DF IF TF SF ZF AF PF CF掌握掌握 软件学院软件学院43l辅助进位标志辅助进位标志AFAF记录运算时低记录运算时低8 8位中低位中低4 4位(低半字节)向高位(低半字节)向高4 4位有无进位位有无进位或借位或借位0NA D3未产生进未产生进/借位借位1AC D3产生进产生进/借位借位AF=3AH + 7CH3AH + 7CHB6HB6H,D D3 3有进位有进位? ? AFAF标志主要由处理器内部使用,用于十进制算术运标志主要由处理器内

45、部使用,用于十进制算术运算调整指令中,用户一般不必关心算调整指令中,用户一般不必关心 OF DF IF TF SF ZF AF PF CF 0011 10100011 1010+ 0111 1100+ 0111 1100 1011 0110 1011 01101掌握掌握 软件学院软件学院44l方向标志方向标志DFDF(Direction FlagDirection Flag)用于串操作指令中,控制地址的变化方向用于串操作指令中,控制地址的变化方向0 0UPUP存储器地址自动增量修改存储器地址自动增量修改1 1DNDN存储器地址自动减量修改存储器地址自动减量修改DF=DF=当当DF=1DF=1时

46、,每次操作后变址寄存器时,每次操作后变址寄存器SISI和和DIDI减小减小当当DF=0DF=0时,每次操作后变址寄存器时,每次操作后变址寄存器SISI和和DIDI增大增大CLDCLD指令复位方向标志:指令复位方向标志:DFDF0 0STDSTD指令置位方向标志:指令置位方向标志:DFDF1 1 OF DF IF TF SF ZF AF PF CF掌握掌握 软件学院软件学院45l中断允许标志中断允许标志IFIF用于开中断或屏蔽中断用于开中断或屏蔽中断0 0DIDI关中断,禁止响应中断关中断,禁止响应中断1 1EIEI开中断,允许响应中断开中断,允许响应中断IF=IF=CLICLI指令复位中断标志

47、:指令复位中断标志:IFIF0 0STISTI指令置位中断标志:指令置位中断标志:IFIF1 1 OF DF IF TF SF ZF AF PF CF掌握掌握 软件学院软件学院46l陷阱标志陷阱标志TFTF(Trap FlagTrap Flag)用于控制处理器进入单步操作方式用于控制处理器进入单步操作方式单步执行指令单步执行指令处理器在每条指令执行结束时,处理器在每条指令执行结束时,便产生一个编号为便产生一个编号为1 1的内部中断的内部中断这种内部中断称为单步中断这种内部中断称为单步中断所以所以TFTF也称为单步标志也称为单步标志n利用单步中断可对程序进行逐条指令的调试利用单步中断可对程序进行

48、逐条指令的调试n这种逐条指令调试程序的方法就是单步调试这种逐条指令调试程序的方法就是单步调试 OF DF IF TF SF ZF AF PF CF0 0处理器正常工作处理器正常工作1 1处理器单步执行指令处理器单步执行指令TF=TF= 软件学院软件学院47在调试程序时,在调试程序时,DEBUGDEBUG提供了测试标志位的手段,提供了测试标志位的手段,用符号表示标志位的值,用符号表示标志位的值,每种标志位的符号如下表:每种标志位的符号如下表:标志名标志名标志为1标志为1 标志为0标志为0OF溢出(是/否)OF溢出(是/否)OVOVNVNVDF方向(减量/加量)DF方向(减量/加量)DNDNUPU

49、PIF中断(允许/关闭)IF中断(允许/关闭)EIEIDIDISF符号(负/正)SF符号(负/正)NGNGPLPLZF零(是/否)ZF零(是/否)ZRZRNZNZAF辅助进位(是/否)AF辅助进位(是/否)ACACNANAPF奇偶标志( 偶/奇)PF奇偶标志( 偶/奇)PEPEPOPOCF进位标志(是/否)CF进位标志(是/否)CYCYNCNCDEBUG不提供不提供TF的符号的符号,用于单步方式操作。用于单步方式操作。 软件学院软件学院48例题例题m=00111011B,n=01001010B,完成下列运算后,完成下列运算后,SF、ZF、PF、CF、AF、OF标志位的状态。标志位的状态。 (1

50、)m+n (2) m-n (1)m+n 00111011 +01001010 10000101符号符号SF=零零ZF=奇偶奇偶PF=进位进位CF=辅助进位辅助进位AF=溢出溢出OF=100011 (2)m-n 00111011 - 01001010 11110001SF=ZF=PF=CF=AF=OF=100100 软件学院软件学院49AH ALBH BLCH CLDH DLSPBPDISIIPFLAGSCSDSESSSFSGS32位位16位位32位名称位名称16位名称位名称 通用名称通用名称AX 累加器累加器BX 基址变址基址变址CX 计数计数 堆栈指针堆栈指针DX 数据数据 基址指针基址指针

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

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

53、本一个最基本的总线周期由的总线周期由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个状态中的基本个状态中的基本作用

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

55、。在在T T状态,多路总线的高状态,多路总线的高4 4位继续提供状态信息位继续提供状态信息, ,而其低而其低1616位(对位(对8088 CPU8088 CPU则为低则为低8 8位)上将出现由位)上将出现由CPUCPU写出的数据写出的数据或者或者CPUCPU从存储器或端口读入的数据。从存储器或端口读入的数据。 软件学院软件学院52 在有些情况下,由于外设或存储器的速度较慢,不能在有些情况下,由于外设或存储器的速度较慢,不能 及时地配合及时地配合CPUCPU传送数据。这时,外设或存储器就会通传送数据。这时,外设或存储器就会通 过过 “READY”READY”的信号线在的信号线在T T3 3状态启

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

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

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

59、读周期,则在空闲周期中,总线低在空闲周期中,总线低1616位会处于高阻状态。位会处于高阻状态。 软件学院软件学院543.1.4 8086/80883.1.4 8086/8088的引脚信号和功能的引脚信号和功能 软件学院软件学院55( (一一) )地址数据总线地址数据总线ADAD1515ADAD0 0 软件学院软件学院56这是分时复用的存储器或端口的这是分时复用的存储器或端口的地址和数据总线地址和数据总线。传送地址时为单向的三态输出,传送地址时为单向的三态输出,而传送数据时可双向三态输入输出。而传送数据时可双向三态输入输出。正是利用分时复用的方法才能使正是利用分时复用的方法才能使80868086

60、80888088用用4040条条引脚实现引脚实现2020位地址、位地址、1616位数据及众多的控制信号和位数据及众多的控制信号和状态信号的传输。状态信号的传输。不过在不过在80888088中,由于只能传输中,由于只能传输8 8位数据位数据, ,所以,只有所以,只有ADAD7 7ADAD0 0 8 8条地址数据线,条地址数据线,A A1515A A8 8只用来输出地只用来输出地址。址。 软件学院软件学院57 作为复用引脚,在总线周期的作为复用引脚,在总线周期的T T1 1状态用来输出要寻址的存储器或状态用来输出要寻址的存储器或I IO O端口地址;端口地址;在在T T2 2状态浮置成高阻状态,为

温馨提示

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

评论

0/150

提交评论