微机原理与应用第四章.ppt

上传人:小飞机 文档编号:6185252 上传时间:2023-10-03 格式:PPT 页数:96 大小:1.68MB
返回 下载 相关 举报
微机原理与应用第四章.ppt_第1页
第1页 / 共96页
微机原理与应用第四章.ppt_第2页
第2页 / 共96页
微机原理与应用第四章.ppt_第3页
第3页 / 共96页
微机原理与应用第四章.ppt_第4页
第4页 / 共96页
微机原理与应用第四章.ppt_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《微机原理与应用第四章.ppt》由会员分享,可在线阅读,更多相关《微机原理与应用第四章.ppt(96页珍藏版)》请在三一办公上搜索。

1、第四章 16位微处理器,4.1 16位微处理器概述4.2 8086/8088CPU的结构4.3 8086/8088CPU的引脚信号和工作模式4.4 8086/8088的主要操作功能,本章目标,1971年第一块微处理器问世,Intel 4040,Intel 4040,MCS-4,4.1 16位微处理器概述(1),4.1 16位微处理器概述(2),4.1 微处理器概述(3),4.2 8086/8088CPU的结构,8088/8086 CPU,8088/8086的内部结构图,SP,BP,SI,DI,CS,DS,SS,ES,IP,内部暂存寄存器,暂存寄存器,FR,EU控制系统,总线控制逻辑,数据总线1

2、6,通用寄存器,8088,指令队列,8088/8086外部总线,数据总线,地址总线20位,执行部件EU,总线接口部件,BIU,16位,控制总线,AXBXCXDX,并行工作方式:,8086CPU采用并行工作方式,取指令2,取操作数,BIU,存结果,取指令3,取操作数,取指令4,执行1,执行2,执行3,EU,BUS,忙碌,忙碌,忙碌,忙碌,忙碌,忙碌,流水线技术,BIU和EU是并行工作的,按流水线技术原则管理,4.执行转移、调用和返回指令时,指令队列中的原有内容自动消除 BIU往指令队列中装入另一程序段中的指令,2.EU从指令队列取指,执行。执行过程中如果要访问存储器或I/O,而此时,BIU正在取

3、指,完成取指后,响应EU的总线请求。,3.指令队列已满,EU又没有总线访问,BIU进入空闲状态,动画演示,8086内部由两部分组成:执行单元(EU)总线接口单元(BIU),AXBXCXDX,累加器基地址寄存器计数器数据寄存器,通用寄存器,4.2.1 执行部件(Execution Unit),15 0,算术逻辑单元ALU,EU控制器,执行单元EU,功能:执行指令 从指令队列中取指令代码 译码 在ALU中完成数据的运算 运算结果 的特征保存在标志寄存器FLAGS中。,执行单元包括,算术逻辑单元(运算器)8个通用寄存器 1个标志寄存器 EU部分控制电路,4.2.2 总线接口部件(Bus Interf

4、ace Unit),20位的地址加法器,BIU,总线控制逻辑,总线接口单元BIU,功能:从内存中取指令送入指令预取队列负责与内存或输入/输出接口之间的数据传送在执行转移程序时,BIU使指令预取队列复位,从指定的新地址取指令,并立即传给执行单元执行。,(1)四个段地址寄存器,CS 16位代码段寄存器,DS 16位数据段寄存器,ES 16位附加段寄存器,SS 16位堆栈段寄存器,BIU的组成,(2)IP 16位指令指针寄存器,指向下一条要取出的指令。,(3)20位地址加法器,16位内部寄存器提供的信息经地址加法器产生20位地址信息。,例:指令的物理地址=CS 16+IP,(4)六字节的指令队列,取

5、指令与执行指令并行工作,即在一条指令的执行过程中,可以取出下一条或多条指令,在指令队列中排队。,8086/8088的内部寄存器,含14个16位寄存器,按功能可分为三类8个通用寄存器4个段寄存器1个标志寄存器1个指令指针寄存器,动画演示,1.通用寄存器,数据寄存器(AX,BX,CX,DX)地址指针寄存器(SP,BP)变址寄存器(SI,DI),数据寄存器,8086含4个16位数据寄存器,它们又可分为8个8位寄存器,即:AX AH,ALBX BH,BLCX CH,CLDX DH,DL常用来存放参与运算的操作数或运算结果,数据寄存器特有的习惯用法,AX:累加器。多用于存放中间运算结果。所有 I/O指令

6、必须都通过AX与接口传送信息;BX:基址寄存器。在间接寻址中用于存放基地址;CX:计数寄存器。用于在循环或串操作指令中存放循环次数或重复次数;DX:数据寄存器。在32位乘除法运算时,存放高16位数;在间接寻址的I/O指令中存 I/O端口地址。,地址指针寄存器,SP:堆栈指针寄存器,其内容为栈顶的偏移地址;BP:基址指针寄存器,常用于在访问内存时存放内存单元的偏移地址。,BX与BP在应用上的区别,作为通用寄存器,二者均可用于存放数据;作为基址寄存器,BX通常用于寻址数据段,与DS搭配使用。;BP则通常用于寻址堆栈段,与SS搭配使用。BX一般与DS或ES搭配使用,变址寄存器,SI:源变址寄存器DI

7、:目标变址寄存器变址寄存器常用于指令的间接寻址或变址寻址。特别是在串操作指令中,用SI存放源操作数的偏移地址,而用DI存放目标操作数的偏移地址。,串传送 MOVSB(正向 DF0),串传送 MOVSW(反向 DF1),2.段寄存器,用于存放逻辑段的段基地址(逻辑段的概念后面将要介绍)CS:代码段寄存器 代码段用于存放指令代码 DS:数据段寄存器 ES:附加段寄存器 数据段和附加段用来存放操作数 SS:堆栈段寄存器 堆栈段用于存放返回地址,保存寄存器内容,传递参数,3.控制寄存器,IP:指令指针寄存器,其内容为下一条 要执行的指令的偏移地址FLAGS:标志寄存器状态标志:存放运算结果的特征控制标

8、志:控制某些特殊操作 6个状态标志位(CF,SF,AF,PF,OF,ZF)3个控制标志位(IF,TF,DF),标志寄存器的安排,OF,DF,IF,TF,SF,ZF,AF,PF,CF,15 11 10 9 8 7 6 5 4 3 2 1 0,进位标志,奇偶标志,半进位标志,零标志,符号标志,中断标志,单步标志,溢出标志,方向标志,控制标志,状态标志,FR寄存器,表 8086 CPU 标志位情况,名 称,符 号,符号标志,SF,功能,与运算结果的最高位相同,当数据用补码表示时,负数的最高位为1,所以符号标志表示运算执行后的结果是正还是负,零标志,ZF,当前的运算结果为零,当前的运算结果为非零,奇偶

9、标志,PF,运算结果所含的1的个数为偶数,进位标志,CF,当执行一个加法运算使最高位产生进位时,或者执行一个减法运算引起最高位产生借位时,此外,循环指令也影响这一标志,辅助进位标志,AF,加法运算时,如果第3位往第4位有进位;减法运算时,如果第3位往第4位有借位。辅助进位标志一般在BCD码运算中作为是否进行十进制调整的判断依据,溢出标志,OF,运算过程中产生溢出时,所谓溢出,是指当字节运算的结果超出了范围 128+127,或者当字运算的结果超出了范围 32768+32767时称为溢出,方向标志,DF,控制串操作指令用的标志。DF=0,串操作过程中的地址会不断增值;DF=1,串操作过程中的地址会

10、不断减值,中断标志,IF,控制可屏蔽中断的标志。IF=0,CPU不能对可屏蔽中断请求作出响应;IF=1,CPU可以接受可屏蔽中断请求,跟踪标志,TF,CPU按跟踪方式执行指令,4.2.3 8086/8088的存储器结构和堆栈,主要内容:存储器编址存储器分段和物理地址生成堆栈和栈操作指令,数据与指令的存储与访问,地址是数据存放的门牌号码是标明数据所在位置的唯一代号,每个地址空间可以存放8位二进制数,内存示意图,所有CPU可以访问的数据与指令都以二进制数的形式存放在内存中,8086计算机主存储器是按字节进行组织的,两个相邻的字节被称为一个“字”。存放的信息若是以字节Byte(8位)为单位的,将在存

11、储器中按顺序排列存放,每个地址单元存放一个字节,即每个字节占用一个地址;若存放的数据为一个字Word(16位)时,则每一个字占用两个地址相连的存储单元,其中低字节(低8位)存放在低地址中,高字节(高8位)存放在高地址中,并以低地址作为该字的地址。8086系统只能提供20根地址线来区分内存的不同存储单元,因此8086系统可以连接的内存最多只能包含220(1M)字节的存储单元。,一、存储器编址,存储器以8位为一个存储单元编址,每一个存储单元用唯一的一个地址码来表示。一个字的两个单元有各自的地址,处于低地址的字节的地址为这个字的地址在存储器中,任何连续存放的两个字节都可以称为一个字。将偶地址的字称为

12、规则字,奇地址的字称为非规则字。,例:字2301的地址为0000H,为规则字;字8967的地址为0003H,为非规则字。,8086的存储器结构,物理地址8086:20根地址线,可寻址220(1MB)个存储单元CPU送到AB上的20位的地址称为物理地址,二、存储器分段和物理地址的生成,物理地址,物理地址,.60000H 60001H 60002H 60003H 60004H.,12H,F0H,1BH,08H,存储器的操作完全基于物理地址。问题:8086的内部总线和内部寄存器均为16位,如何生成20位地址?解决:存储器分段,存储器分段,高地址,低地址,段基址,段基址,段基址,段基址,最大64KB,

13、段i-1,段i,段i+1,1.1M存储空间分成若干个逻辑段,每一段64K,2.段与段之间可以连续排列,部分重叠,断续排列。,逻辑地址,段基地址和段内偏移组成了逻辑地址 段地址 偏移地址(偏移量)格式为:段地址:偏移地址 物理地址=段基地址16+偏移地址,60002H,00H,12H,60000H,0 0 0 0,段基地址(16位),段首地址,02H,BIU中的地址加法器用来实现逻辑地址到物理地址的变换8088 可同时访问4个段,4个段寄存器指示了每个段的基地址,段基址,段内偏移,物理地址,+,16位,20位,0000,逻辑地址和物理地址区别,物理地址:20位绝对地址,逻辑地址:段基址:段内偏移

14、量,物理地址=段基址 16+偏移地址,4.2.3 存储器结构(1),20条地址线,寻址能力,00000FFFFFH,乘以16,段首址,4.2.3 存储器结构(2),物理地址:1MB存储区域中的实际地址(20位的地址),存储器管理就是将程序中的逻辑地址转换成物理地址的结构,物理地址=段地址16+偏移量,*同一物理地址可以有不同的段地址和偏移量,对8086/8088而言,内存地址的一般情况,1.指令地址:CS16+IP,2.堆栈操作地址:SS16+SP,3.操作数地址:DS(ES)16+偏移地址(其中的偏移地址取决于指令的寻址方式共24种),例:,已知CS=1055H,DS=250AH,ES=2E

15、F0H,SS=8FF0H,DS段有一操作数,其偏移地址=0204H,1)画出各段在内存中的分布 2)指出各段首地址 3)该操作数的物理地址=?,解:各段分布及段首址见右图所示。操作数的物理地址为:250AH10H+0204H=252A4H,注意:一个程序可以有代码段、数据段、附加段和堆栈段,它们的段基址分别存放在CS、DS、ES和SS中。段寄存器为16位,在计算物理地址时要乘16,比如DS的内容为1000H,对应物理地址为10000H,相当于在二进制数尾部补了4个0,也就是说,段的起始地址只能从物理地址能够整除16的(二进制数尾部为4个0)那些地址开始。例如,如下第一列的物理地址可以作为段首地

16、址,存入段寄存器时只存前16位二进制数,其他列不可以作为段首地址。00000H 00001H 00002H 00003H 0000FH 00010H 00011H 00012H 00013H 0001FH 00020H 00021H 00022H 00023H 0002FH 00030H 00031H 00032H 00033H 0003FH,四、堆栈及堆栈段的使用,内存中一个按LIFO方式操作的特殊区域每次压栈和退栈均以WORD为单位SS存放堆栈段地址,SP存放段内偏移,SS:SP构成了堆栈指针堆栈用于存放返回地址、过程参数或需要保护的数据常用于响应中断或子程序调用,堆栈的概念,堆栈区是在随

17、机存储的内存中开辟一片数据存储区实现FILO(或LIFO)的数据存放。这种数据存取方式类似于货物的堆放与取出,故称作堆栈。也类似于弹匣中子弹的存取方式。堆栈的FILO存取方式是靠堆栈指针SP的自动变化来实现的。,高地址,低地址,SP=SP-2,SS16+SP=02008H,SP,低地址,高地址,SS16+SP=02006H,SP=SP+2,SP,SP,SS,SS,压栈前,退栈后,高,低,低,高,高,12H,SS,F0H,SP,压栈后,低,高,SP,SP,SP,F0H,12H,SP,PUSH AX,POP BX,AX=12F0H,BX=12F0H,压入标志:PUSHF弹出标志:POPF堆栈操作对

18、标志位的影响,状态标志寄存器进栈指令PUSHF 出栈指令POPF,追踪标志TF只有通过PUSHF将整个标志寄存器进栈,然后改变栈顶存储单元的D8位,再用POPF指令出栈。,4.2.4 8086总线的工作周期(1),取指令,译码,执行,每条指令,一系列控制信号,指令周期:执行一条指令所需要的时间,总线周期:CPU从存储器或I/O端口存取 一次所需要的时间(Bus Cycle),访问一次总线的时间,分析,执行每一条指令的时间不同,8086的时钟频率为10MHZ,时钟周期(一个T状态)为100ns,4.2.4 8086总线的工作周期(2),最基本的总线周期,4.3 8086/8088CPU的引脚信号

19、和工作模式,8080/8085 8位 16位 64KB 408088/8086 16位 20位 1MB 40,数据线 地址线 直接寻址 引脚数,8086/8088的工作模式,工作模式,最小工作模式:所有的总线控制信号都 直接由8088/8086产生,最大工作模式:8088/8086要通过总线控制器 8288来形成各种总线周期,控 制信号由8288供给,单CPU系统,多CPU系统,8086微处理器的引脚信号功能 及两种工作模式下的系统组成,8086是一个40引脚的器件,为了便于组成不同规模的系统,Intel公司为8086设计了两种工作模式。在不同的工作模式下,引脚信号的含义不同。,8086引脚图

20、,4.3.1 8086/8088的引脚信号和功能(1),1.AD15AD0 地址/数据复用总线,双向,三态(8088中A15A8不复用,输出,三态),2.A19/S6A16/S3,地址/状态线复用,输出,三态,8086的存储器结构,奇地址存储器,偶地址存储器,A0,A19A1,D7D0,D15D8,(34),512K*8,512K*8,D7D0,D7D0,BHE,SEL,SEL,BHE,0 偶地址低位字节,A0,0 0 字操作,4.3.1 8086/8088的引脚信号和功能(2),4.NMI,非屏蔽中断,输入,5.INTR,可屏蔽中断请求信号,输入,4.3.1 8086/8088的引脚信号和功

21、能(3),9.READY,准备好信号,输入,12.GND地和VCC电源引脚,4.3.2 最小工作模式(1),INTA(QS1),中断响应,输出,三态,低电平有效,括号中是最大工作模式下的引脚功能,4.DT/R(S1),数据发送/接收控制,输出,三态,4.3.2 最小工作模式(2),4.3.2 最小工作模式(3),SS0(8088),系统状态信号(与IO/M和DT/R一起反映总 线周期的状态,见表),你能说出8088与8086在引脚的功能上有几点不同吗?,M/IO DT/R SS0 操作,发中断响应信号,读I/O端口,写I/O端口,暂停,取指令,读内存,写内存,无源状态,1 0 0,1 0 1,

22、1 1 0,1 1 1,0 0 0,0 0 1,0 1 0,0 1 1,收发器8286(二片),最小工作模式下的典型配置,8284A,地址锁存器8282(三片),控制总线,控制总线,STB,OET,数据总线,地址总线,BHE,READY,RESET,74LS373替代,74LS245替代,20位,图:微型计算机结构框图,常用接口芯片介绍,8282/74LS373 具有三态正相输出的锁存器内部包含8个D触发器引脚:DI0DI7 输入DO0DO7 输出STB 锁存信号OE#输出允许功能:STB=1 锁存数据OE#=0 将锁存的数据输出功能类似的还有8283但为反相输出,芯片选通,输出允许,8282

23、,AD0AD1AD2AD3AD4AD5AD6AD7AD8AD9AD15A16A17A18A19BHE,数据,DI0 DO0DI1 DO1DI2 DO2DI3 DO3DI4 DO4DI5 DO5DI6 DO6DI7 DO7,DI0 DO0DI1 DO1DI7 DO7,ALE,STB,STB,STB,地址,8086,8282,8282,OE,8282锁存器与8086的连接,总线驱动器,8286/74LS245 双向三态驱动器引脚:A0A7和B0B7 双向数据线OE#输出允许T 方向控制功能:OE#=0时,门导通;门导通时:T=0,BA;T=1,AB功能类似的还有8287但为反相输出,输出允许,方向

24、选择,8286,T,8286收发器和8088的连接,8088,数据总线,AD0AD1AD2AD3AD4AD5AD6AD7,A0A1A2A3A4A5A6A7,B0B1B2B3B4B5B6B7,接地址锁存器,8286与8086的连接图,8086 最小模式系统组成框图,最小模式的系统组成,4.3.3 最大工作模式(1),1.QS1和QS2,指令队列状态信号,输出,(ALE INTA),2.总线周期状态信号,输出,三态,4.3.3 最大工作模(2),3.LOCK,总线封锁信号,输出,三态,低电平有效,4.3.3 最大工作模(3),总线控制器8288,状态译码器,控制电路,命令信号发生器,控制信号发生器

25、,状态信号,控制输入,总线命令信号,总线控制信号,相当于WR和M/IO的组合,超前写信号,4.4 8086/8088的主要操作功能,CPU的主要操作,系统的复位和启动操作总线操作中断操作最小工作模式下的总线请求最大工作模式下的读/写操作,4.4.1 系统的复位和启动操作,CLK,8086/8088的启动和复位信号,图:8284A与8086的连接图,4.4.2 总线操作,T1 T2 T3 T4,CLK,ALE,最小工作模式下的总线读周期,M/IO,A19A16S6S3,AD15AD0,如果是8088有哪些不同?,CLK,ALE,M/IO,A19A16S6S3,AD15AD0,具有等待状态的总线读

26、操作,READY,最小工作模式下的总线写操作(8086),T1 T2 T3 T4,CLK,ALE,M/IO,A19A16S6S3,WR,AD15AD0,读操作和写操作有哪些不同?,4.4.3 中断操作,按中断产生的方法,硬件中断:,软件中断:,1.8086/8088的中断分类,CPU根据软件中的某条指令(INT n)或对标志寄存器的 设置而产生的,和硬件电路 无关,8086/8088的中断分类图,INT n 指令,中断逻辑,INT3指令,INTO指令,单步中断,除数为0中断,非屏蔽中断请求,可屏蔽中断请求,软中断,硬中断,NMI,INTR,256种中断,2.中断向量(1),中断向量,中断服务子

27、程序的入口地址。,每一个中断类型对应一个中断向量。,2.中断向量(2),例:类型号为17H的中断处理程序存放在2345:7890H开 始的内存区域中,问17H中断对应的中断向量放在那 几个单元?这几个单元的内容是多少?,17H4=5CH,17H对应的中断向量放在0000:005CH 开始的4个单元,(005CH)=90H(005DH)=78H(005EH)=45H(005FH)=23H,3.硬件中断,硬件中断,非屏蔽中断,由CPU的 NMI 引脚进入不受中断允许标志 IF 的影响中断类型2中断向量放在0段的0008H000BH,可屏蔽中断,由CPU的 INTR 引脚进入受中断允许标志 IF 的

28、影响有中断响应周期,4.可屏蔽中断的响应过程,当前指令执行完?,除法错INT n,INT 0?,NMI?,INTR?,TF=1?,执行下一条指令,0TF和IF,CS,IP堆栈,TF暂存器,(4N:4N+1)IP(4N+2:4N+3)CS,读中断矢量,中断服务程序,执行IRET指令弹出IP,CS,FR中断返回,IF=1?,FR堆栈,内部自动提供矢量码,暂存器=1?,NMI?,响应中断,N,Y,Y,Y,Y,N,N,保护现场,Y,中断响应总线周期,T1 T2 T3 T4 T1 T1 T1 T1 T2 T3 T4,三个空闲状态,LCK,ALE,AD7AD0,中断类型,5.中断处理子程序的结构模式,一系

29、列的入栈指令,用来保护需要保护的内容开放中断,IF=1,允许其它更高级别的中断请求进入该中断服务程序要处理的具体内容一系列弹出堆栈的指令,保护的恢复中断返回指令,6.软件中断,软件中断的特点:,由中断指令使CPU进入中断处理子程序不需要执行中断响应总线周期不受中断允许标志IF的影响,4.4.4 最小工作模式下的总线保持,CLK,HOLD,HLDA,所有三态总线,8086/8088总线保持请求/保持响应时序图,4.4.5 最大工作模式下的读/写操作,T1 T2 T3 T4,CLK,ALE,S2S1S0,A19A16S6S3,AD15AD0 BHE,S2S1S0,地址,地址,输出,输出,S6S3,数据,输入,读总线周期时序,MRDC或IORDC,8288产生,S2S1S0=111,MRDC或IORC,最大工作模式下写总线操作时序图,T1 T2 T3 T4,CLK,ALE,S2S1S0,A19A16S6S3,AD15AD0 BHE,S2S1S0=110,地址,地址,输出,输出,S6S3,数据,输入,MWTC或IOWC,8288产生,S2S1S0=111,MWTC或IOWC,AMWC,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号