单片微机原理及应用备课提纲第七章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片微机原理及应用备课提纲第七章课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片 微机 原理 应用 备课 提纲 第七 课件
- 资源描述:
-
1、 第七章第七章 8086CPU8086CPU与与PCPC7/26/20221 上世纪七十年代末上世纪七十年代末,IBM公司公司推出世界上第一台个人计算机推出世界上第一台个人计算机IBM PC 采用采用Intel公司的公司的8086 CPU芯片芯片 采用微软公司的采用微软公司的DOS操作系统操作系统7/26/20222 当前微型计算机市场上,大多数微型计算机的当前微型计算机市场上,大多数微型计算机的微处理器都是微处理器都是Intel 8086Intel 8086的家族成员,有的家族成员,有80868086、8018680186、8028680286、8038680386、8048680486、P
2、entium Pentium(8058680586)、)、Pentium 2Pentium 2、Pentium 3Pentium 3、Pentium 4Pentium 4,可把,可把80868086微处理器看成基础,以微处理器看成基础,以后所推出的都有改进,但保持与后所推出的都有改进,但保持与80868086兼容,即兼容,即都具有都具有80868086的基本逻辑结构。的基本逻辑结构。以以80868086微处理器组成的微机系统已少见了,但微处理器组成的微机系统已少见了,但从学习角度出发,仍可作为基本例机学习。从学习角度出发,仍可作为基本例机学习。7/26/20223 第一节第一节 8086 CP
3、U8086 CPU7/26/20224 一一.结构框图结构框图 80868086微处理器是微处理器是Intel Intel 公司于公司于19781978年推出年推出的一种高性能微处理器。集成了的一种高性能微处理器。集成了2900029000个晶体个晶体管,采用标准的管,采用标准的4040条引脚的双列直插封装,数条引脚的双列直插封装,数据线据线1616位,地址线位,地址线2020位,位,7 7种基本寻址方式,种基本寻址方式,9999条基本指令。时钟频率有三种:条基本指令。时钟频率有三种:5MH5MHZ Z(80868086)、)、5MH5MHZ Z(8086-18086-1)和)和10MH10M
4、HZ Z(8086-28086-2)。)。可处理内部软件中断和外部硬件中断,支持单可处理内部软件中断和外部硬件中断,支持单处理器、多处理器系统工作。处理器、多处理器系统工作。为了提高程序的执行速度,充分使用总线,为了提高程序的执行速度,充分使用总线,80868086微处理器被设计为两个独立的功能部件:微处理器被设计为两个独立的功能部件:执行部件和总线接口部件。执行部件和总线接口部件。7/26/20225 图图7-1 8086CPU的结构框的结构框图图7/26/20226总线接口部件总线接口部件BIU(Bus Interface Unit)BIUBIU是是8086CPU8086CPU与存储器和与
5、存储器和I/OI/O设备之间的接口部件,它设备之间的接口部件,它提供了提供了1616位双向数据总线、位双向数据总线、2020位地址总线和若干条控位地址总线和若干条控制总线。制总线。BIUBIU由段寄存器、指令指针寄存器由段寄存器、指令指针寄存器IPIP、2020位地址加法器、位地址加法器、指令队列缓冲器和总线控制电路等组成。指令队列缓冲器和总线控制电路等组成。具体任务:具体任务:BIUBIU从内存储器的指定区域中取出指令送到从内存储器的指定区域中取出指令送到指令队列中去排队;从相应的内存区域或指令队列中去排队;从相应的内存区域或I/OI/O端口中取端口中取出操作数,传送给出操作数,传送给EUE
6、U。如果指令执行的结果需要存入。如果指令执行的结果需要存入内存储器,也是由内存储器,也是由BIUBIU写入相应的内存区域。写入相应的内存区域。7/26/20227(1)(1)地址加法器和段地址地址加法器和段地址 1616位的段地址左移位的段地址左移4 4位,与位,与1616位的偏移地址相加,生位的偏移地址相加,生成成2020位的物理地址。位的物理地址。7/26/20228(2 2)指令指针寄存器指令指针寄存器IP(Instruction Pointer)IP(Instruction Pointer)用来控制用来控制CPUCPU的指令执行顺序,和的指令执行顺序,和CSCS一起可以确定当一起可以确
7、定当前所要取的指令在存储器中的物理地址。顺序执行程序前所要取的指令在存储器中的物理地址。顺序执行程序时,时,CPUCPU取一个指令字节,取一个指令字节,IPIP自动加自动加1 1,指向下一条要读,指向下一条要读取的字节。当取的字节。当IPIP单独改变时,发生段内转移;当单独改变时,发生段内转移;当CSCS和和IPIP同时改变时,发生段间的程序转移。同时改变时,发生段间的程序转移。(3 3)指令队列缓冲器(先进先出的栈)指令队列缓冲器(先进先出的栈)操作原则:操作原则:每当每当指令队列缓冲器中存满指令队列缓冲器中存满1 1条指令后,条指令后,EUEU就就 立刻开始执行。立刻开始执行。指令队列缓冲
8、器只要空出指令队列缓冲器只要空出2 2个指令字节时,个指令字节时,BIUBIU 便自动执行取指操作,直到填满为止。便自动执行取指操作,直到填满为止。7/26/20229 每当每当EUEU执行一条转移、调用或返回指令后,需执行一条转移、调用或返回指令后,需 清除清除指令队列缓冲器指令队列缓冲器,并要求,并要求BIUBIU从新的地址从新的地址 开始取指令。新取的第一条指令将直接经开始取指令。新取的第一条指令将直接经指令指令 队列缓冲器送到队列缓冲器送到EUEU去执行,随后取来的指令将去执行,随后取来的指令将 填入指令队列缓冲器填入指令队列缓冲器 (4 4)总线控制电路)总线控制电路概括:概括:BI
9、UBIU的作用是负责取指令的作用是负责取指令和存取操作数。和存取操作数。7/26/202210执行部件执行部件EUExecution Unit EUEU与外部系统没有直接相连。与外部系统没有直接相连。EUEU由由ALUALU、通用寄存器、数据暂存寄存器、标志寄存器、通用寄存器、数据暂存寄存器、标志寄存器和和EUEU控制电路等组成。控制电路等组成。具体任务:从具体任务:从BIUBIU的指令队列的指令队列缓冲器缓冲器中获得指令操作码,中获得指令操作码,通过译码电路分析,发出相应的控制命令,控制通过译码电路分析,发出相应的控制命令,控制ALUALU数数据总线中数据的流向。操作数经过暂存器送入据总线中
10、数据的流向。操作数经过暂存器送入ALUALU,运,运算结果经过算结果经过ALUALU数据总线送到相应的寄存器。标志寄存数据总线送到相应的寄存器。标志寄存器根据运算结果改变状态然后执行该指令,完成指令器根据运算结果改变状态然后执行该指令,完成指令所规定的操作(主要完成算术逻辑运算及计算指令要所规定的操作(主要完成算术逻辑运算及计算指令要求寻址的所在单元地址的求寻址的所在单元地址的1616位偏移地址,并送至位偏移地址,并送至BIUBIU)EUEU还对通用寄存器、标志寄存器和指令操作数进行管还对通用寄存器、标志寄存器和指令操作数进行管理。理。7/26/202211(1)算术逻辑运算单元)算术逻辑运算
11、单元ALU:16位的运算器位的运算器(2)标志寄存器:标志寄存器:1616位的寄存器位的寄存器(3 3)数据暂存寄存器)数据暂存寄存器(4 4)通用寄存器组)通用寄存器组(5 5)EUEU控制电路控制电路概括:概括:EUEU的作用是负责分析指的作用是负责分析指令和执行指令。令和执行指令。7/26/202212优优 点点 由于由于EUEU和和BIUBIU两部件互相独立,故两部件互相独立,故取指令和执行指令可同时进行。取指令和执行指令可同时进行。EUEU执执行的是行的是BIUBIU在前一时刻取出的指令,同在前一时刻取出的指令,同时时BIUBIU取出取出EUEU下一时刻要执行的指令。下一时刻要执行的
12、指令。所以提高了利用率和执行速度。所以提高了利用率和执行速度。7/26/2022137/26/202214二二.寄存器结构寄存器结构 1.通用寄存器通用寄存器 AX AX 累加器累加器 (Accumulator)(Accumulator)BX BX 基址寄存器基址寄存器 (Base Register)(Base Register)CX CX 计数寄存器计数寄存器 (Counter Register)(Counter Register)DX DX 数据寄存器数据寄存器 (Data Register)(Data Register)SP SP 堆栈指针寄存器堆栈指针寄存器 (Stack Pointe
13、r Register)(Stack Pointer Register)BP BP 基址指针寄存器基址指针寄存器 (Base Pointer Register)(Base Pointer Register)SI SI 源变址寄存器源变址寄存器 (Source Index Register)(Source Index Register)DI DI 目的变址寄存器目的变址寄存器 (Destination Index Register)(Destination Index Register)7/26/202215 AXAX、BXBX、CXCX、DXDX均为均为1616位,既能用来寄存操作数,也位,既能
14、用来寄存操作数,也可用于寄存中间运算的结果,可分为可用于寄存中间运算的结果,可分为2 2个独立的个独立的8 8位寄位寄存器。存器。1616位寄存器主要用于存放数据,也可用来存放地址。位寄存器主要用于存放数据,也可用来存放地址。8 8位寄存器只能用于存放数据。位寄存器只能用于存放数据。有了寄存器,可避免经常访问存储器,为编程提供方有了寄存器,可避免经常访问存储器,为编程提供方便,提高了便,提高了CPUCPU运算速度。运算速度。这些寄存器具有良好的通用性,使用灵活,称为通用这些寄存器具有良好的通用性,使用灵活,称为通用寄存器。实际上它们的结构是一样的,分工不同,有寄存器。实际上它们的结构是一样的,
15、分工不同,有些有专有用法。些有专有用法。AXAX常用作累加器,常用作累加器,BXBX用作基址寄存器,用作基址寄存器,CXCX用作计数寄存器,用作计数寄存器,DXDX用作数据寄存器。用作数据寄存器。7/26/2022162.2.地址寄存器:地址寄存器:1616位,用于存放地址的偏移量。位,用于存放地址的偏移量。堆栈指针寄存器堆栈指针寄存器SPSP:出入堆栈(:出入堆栈(PUSHPUSH和和POPPOP)用)用SPSP给给 出栈顶的偏移地址。出栈顶的偏移地址。基址指针寄存器基址指针寄存器BPBP:存放位于堆栈段中的一个数据区:存放位于堆栈段中的一个数据区 的基地址的偏移地址。的基地址的偏移地址。源
16、变址寄存器源变址寄存器SISI:在字符串操作指令中,源操作数的:在字符串操作指令中,源操作数的 偏移地址存放于偏移地址存放于SISI中。中。目的变址寄存器目的变址寄存器DIDI:在字符串操作指令中,目的操作:在字符串操作指令中,目的操作 数的偏移地址存放于数的偏移地址存放于DIDI中。中。7/26/2022173.3.段寄存器段寄存器 8086/80888086/8088存储器都是以字节(存储器都是以字节(8 8位)为单位组织的,位)为单位组织的,每个单元具有每个单元具有2020条地址线,存储器总共应有条地址线,存储器总共应有2 22020(1M1M)字节。必须要有字节。必须要有2020条地址
17、线才能区分条地址线才能区分1M1M内存。每个单内存。每个单元对应一个唯一的地址(元对应一个唯一的地址(00000H-FFFFFH00000H-FFFFFH)。)。2 22020=1048576=1048576。十六进制地址十六进制地址 二进制地址二进制地址 存储器存储器 00000H 0000 0000 0000 0000 0000B xxxxxxxx 00001H 0000 0000 0000 0000 0001B xxxxxxxx 00002H 0000 0000 0000 0000 0010B xxxxxxxx 00003H 0000 0000 0000 0000 0011B xxxxx
18、xxx .FFFFFH 1111 1111 1111 1111 1111B xxxxxxxx7/26/202218 CPUCPU内部的寄存器内部的寄存器BXBX、IPIP、SPSP、BPBP、SISI、DIDI及算逻单元及算逻单元ALUALU提供地址,但它们都是提供地址,但它们都是1616位的,只能提供位的,只能提供1616位地址,位地址,如何扩大为如何扩大为2020位地址呢?位地址呢?方法:地址分段。方法:地址分段。把把1M1M字节的存储器空间分成若干个段,每个段最多有字节的存储器空间分成若干个段,每个段最多有64K64K个单元,段内的地址是连续的。各段的起始地址必个单元,段内的地址是连续的
19、。各段的起始地址必须是能被须是能被1616整除的地址,即段的起始地址的低整除的地址,即段的起始地址的低4 4位二进位二进制码必须是制码必须是0 0。一个段的起始地址的高。一个段的起始地址的高1616位称为该段的位称为该段的段地址。段地址。1M1M字节的存储器空间最多可有字节的存储器空间最多可有64K64K个段地址。个段地址。任意相邻的两个段地址相距任意相邻的两个段地址相距1616个单元。段内一个单元个单元。段内一个单元的地址可用相对于段地址的偏移量来表示,如:的地址可用相对于段地址的偏移量来表示,如:0000H0000H:1234H,1234H,这个偏移量这个偏移量1234H1234H称为段内
20、偏移地址,又叫有称为段内偏移地址,又叫有效地址(效地址(EAEA)。)。7/26/202219CS CS(Code Segment)Code Segment)代码段寄存器,存放当前代码段寄存器,存放当前 程序代码段的段地址(段基址),控制程序程序代码段的段地址(段基址),控制程序 区。区。DS DS(Data Segment)Data Segment)数据段寄存器,存放当前数据段寄存器,存放当前 数据段的段地址,控制数据区。数据段的段地址,控制数据区。SS SS(Stack Segment)Stack Segment)堆栈段寄存器,存放当前堆栈段寄存器,存放当前 堆栈段的段地址,控制堆栈区。堆
21、栈段的段地址,控制堆栈区。ES ES(Extra Segment)Extra Segment)附加段寄存器,存放当前附加段寄存器,存放当前 附加段的段地址,控制数据区。附加段的段地址,控制数据区。7/26/202220 信息的分段存储信息的分段存储程序区:用来存放程序的指令代码。程序区:用来存放程序的指令代码。数据区:用来存放原始数据、中间结果、数据区:用来存放原始数据、中间结果、最后运算结果等。最后运算结果等。堆栈区:用来存放压入堆栈的数据和状态堆栈区:用来存放压入堆栈的数据和状态 信息。信息。7/26/202221三三.标志寄存器和指令指针标志寄存器和指令指针 指令指针指令指针IPIP(类
22、似于(类似于8 8位位CPUCPU中中的中中的PCPC)标志寄存器标志寄存器FLAGS FLAGS 用来存放用来存放8086CPU8086CPU在工作过程中在工作过程中的状态,它是一个的状态,它是一个1616位寄存器。用九位,表示九个特位寄存器。用九位,表示九个特征,征,其中六位反映前一次其中六位反映前一次ALUALU操作结果的状态标志,三位是操作结果的状态标志,三位是控制控制CPUCPU操作特征的控制标志。操作特征的控制标志。7/26/202222CF(Carry Flag)进位标志位进位标志位 加法时最高位(对字节操作时是加法时最高位(对字节操作时是D7位,对字操作时是位,对字操作时是D1
23、5位)产位)产生进位,减法时最高位产生借位,生进位,减法时最高位产生借位,则则CF=1;否则否则CF=0。7/26/202223PF(Parity Flag)奇偶标志位奇偶标志位 如果操作结果的低如果操作结果的低8 8位中含有偶位中含有偶数个数个1 1,则,则PF=1PF=1;否则,;否则,PF=0PF=0。7/26/202224AF(Auxiliary Carry Flag)辅助进位辅助进位标志标志 加法时加法时D D3 3位有进位,或减法时位有进位,或减法时D D3 3位有借位,则位有借位,则AF=1;AF=1;否则否则AF=0AF=0。这个标志位用于实现这个标志位用于实现BCDBCD码算
24、术码算术运算结果的调整。运算结果的调整。7/26/202225ZF(Zero Flag)ZF(Zero Flag)零标志零标志 如果运算结果各位都为零,如果运算结果各位都为零,则则ZF=1;ZF=1;否则,否则,ZF=0ZF=0。7/26/202226SF(Sign Flag)符号标志符号标志 SFSF总是和结果的最高位(字节操总是和结果的最高位(字节操作时是作时是D D7 7位,字操作时是位,字操作时是D D1515位)位)相同。因为在补码运算时最高位相同。因为在补码运算时最高位是符号位,所以运算结果为负时,是符号位,所以运算结果为负时,SF=1;SF=1;否则否则SF=0SF=0。7/26
25、/202227OF(Overflow Flag)溢出标志溢出标志 加法:次高位有进位,最高位无进位;加法:次高位有进位,最高位无进位;或次高位无进位,最高位有进位;则发或次高位无进位,最高位有进位;则发生溢出,生溢出,OF=1OF=1。否则无溢出,。否则无溢出,OF=0OF=0。减法:次高位有借位,最高位无借位;减法:次高位有借位,最高位无借位;或次高位无借位,最高位有借位;则发或次高位无借位,最高位有借位;则发生溢出,生溢出,OF=1OF=1。否则无溢出,。否则无溢出,OF=0OF=0。7/26/202228 例如,假定前一条指令执行加法:例如,假定前一条指令执行加法:0010 0011 0
展开阅读全文