




已阅读5页,还剩81页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章 16位微处理器 4-1 微处理器概述 4-2 8086/8088 CPU 的结构 4-3 8086/8088 CPU 的引脚信号和工作模式 4-4 8086/8088的主要操作功能 v系统的复位和启动操作 v总线操作 v中断操作 v最小工作模式下的总线保持 v8282锁存器 v8286收发器 v 执行部件EU、总线接口部件BIU、 v 存储器的结构、总线工作周期 微微 机机 原原 理理 及及 应应 用用 微处理器概述 微微 机机 原原 理理 及及 应应 用用 微处理器(Microprocessor)是微型计算机的运算及控制部件, 也称为中央处理单元(CPU)。它本身不构成独立的工作系统, 因而它也不能独立地执行程序。通常,CPU从功能上分为执行部 件(EU)和总线接口部件(BIU) 一一 什么是微处理器?什么是微处理器? 二 微处理器的发展 第一代微处理器 第二代微处理器 第三代微处理器 第四代微处理器 现代微处理器 1. 第一代微处理器是1971年Intel公司推出的 4040和8008。它们是采用PMOS工艺的4位及 8位微处理器 2. 第二代微处理器是1974年推出的8080, M6800及Z-80等。它们是采用NMOS工艺的8 位微处理器. 16位微处理器概述 3. 20世纪70年代后期,超大规模集成电路 (VLSI)投入使用,出现了第三代微处理器 。Intel公司的80868088,Motorola公司 的M68000和Zilog公司的Z8000等16位微处 理器相继问世,它们的运算速度比8位微处 理器快25倍。 4. 20世纪80年代以来,Intel公司又推出了 高性能的16位微处理器80186及80286。它 们与80868088向上兼容。80286是为满足 多用户和多任务系统的微处理器,速度比 8086快56倍。 5. 1985年,第四代微处理器80386及M68020 推出市场,集成度达45万个晶体管片。它们 是32位微处理器,时钟频率达40MHz,速度 之快、性能之高,足以同高档小型机相匹敌。 6.如1989年推出了80486,1993年推出了 Pentium及80586等更高性能的32位及64位微 处理器,它也促进了其他技术的进步。 本章以讲解16位80868088微处理器为中心 。 8086和8088 CPU的内部基本相同,但它们 的外部性能是有区别的。 8086是16位数据总线,而8088是8位数据 总线,在处理一个16位数据字时,8088需 要两步操作而8086只需要一步。 微微 机机 原原 理理 及及 应应 用用 一 执行部件 二 总线接口部件 三 存储器的结构 8086/8088 CPU 的结构 四 8086总线的工作周期 ALU 执行部分 控制电路 输入/输出 控制电路 地址加法器 20位 16位 指令队列缓冲器 8位 执行部件(EU)总线接口部件(BIU) 外部 总线 16位 运算寄存器 标志寄存器 通用 寄存器 8086CPU结构图 段寄存器 DL CL BL AL SI DI BP SP DH CH BH AH 内部暂存器 IP ES SS DS CS 微微 机机 原原 理理 及及 应应 用用 专用 寄存器 返回BIU BIU (bus interface unit):负责与存储器、I/O端口 ,即8086/8088CPU与存储器之间的信息传送。 EU(execution unit):负责指令的执行。 通用寄存器,专用寄存器,标志寄存器(FR), 算术逻辑单元(ALU) BIU从内存的指定部分取出指令,送到指令流队列中排 队; 操作数也由BIU从内存的指定区域取出,传送给EU执行 。 寄存器(一) AHAHALAL BHBHBLBL CHCHCLCL DHDHDLDL 通用寄存器通用寄存器 AX AX 累加器累加器 BX BX 基基 数数 CX CX 计计 数数 DX DX 数数 据据 微微 机机 原原 理理 及及 应应 用用 AX: AX: 有些指令约定有些指令约定AX(AX(或或AL)AL)为累加器,如乘、除、输入为累加器,如乘、除、输入/ /输出等输出等 BX: BX: 基址寄存器,可用作间接寻址的地址寄存器和基地址寄存器。基址寄存器,可用作间接寻址的地址寄存器和基地址寄存器。 CX: CX: 计数寄存器,在循环和串操作中充当计数器。指令执行后计数寄存器,在循环和串操作中充当计数器。指令执行后CXCX 寄存器中内容自动变化。寄存器中内容自动变化。 DX: DX: 数据寄存器,除用作通用寄存器外,在数据寄存器,除用作通用寄存器外,在I/OI/O指令中用作口地址指令中用作口地址 寄存器,乘除指令中用作辅助寄存器。寄存器,乘除指令中用作辅助寄存器。 SPSP BPBP SISI DIDI 专用寄存器专用寄存器 堆栈指针,堆栈指针,Stack Pointer RegisterStack Pointer Register 基数指针,基数指针,Base Pointer RegisterBase Pointer Register 目的变址,目的变址, Destination Index Register Destination Index Register 源源 变变 址,址,Source Index RegisterSource Index Register BP,SP常用来指示相对于段起始地址的偏移量。 SI,DI可用作寄存器间接寻址、相对寻址、基址变址寻址、 相对基址变址寻址寄存器,访问数据段任意单元。 变址寻址通常用于对数组元素进行操作。 标志寄存器(FR) 15 14 13 12 11 109876543210 OF DF IF TF SF ZFAFPFCF OF (Overflow Flag):溢出 DF (Direction Flag): 方向 IF (Interrupt Flag): 中断 TF (Trap Flag): 跟踪 SF (Sign Flag) :符号 ZF (Zero Flag) :零 AF (Auxiliary Carry Flag) :半进位 PF (Parity Flag) :奇偶 CF (Carry Flag) :进位结构图 标志寄存器(1) 状态标志(6个): SF(符号标志):当执行算术或逻辑运算指令时,符号标志位 接受运算结果最高位的值。当最高位为1时,SF=1( NG),最 高位为0:SF=0(PL ) 15 14 13 12 11 109876543210 OF DF IF TF SF ZFAFPFCF 4. CF(进位标志)加法运算时最高位产生进位或减法运算时最高 位产生借位时CF=1(CR),反之CF=0(NC); 3. PF(奇偶标志)运算结果的低8位中含1的个数为偶数时PF=1 (PE),反之PF=0(PO); 2. ZF(零标志):运算结果为零时,ZF=1(ZR),反之ZF=0 (NZ) 6、OF (溢出标志) 有符号 (signed)数加减时超出数据范围称为溢出, 溢出时OF=1(OV,字节运算结果超出 -128 +127, 或 者字运算结果超出 -32768 +32767),反之OF=0(NV ) 状态标志: 5、AF(辅助进位标志)加法运算时第3位往第4位有进 位或减法运算时第3位往第4位有借位AF=1(AC),反 之AF=0(NA); 标志寄存器(2) 3. TF(跟踪标志)TF=1时,CPU按跟踪方式运行。 控制标志(3个): 1. DF(方向标志):控制执行串操作指令时被操作数 地址的变化方向,DF=0(UP)时地址递增, DF=1(DN)时地址递减;(用于某些串操作指令) 2. IF(可屏蔽中断响应标志):IF=1(EI)允许可屏蔽 中断,IF=0(DI)禁止可屏蔽中断。该标志可由中断 2. 控制指令设置或清除。 超出数据范围称为溢出(OF=1,OV)。 1. 两个字节的signed 数相加结果超出了-128 +127 的范围时 , OF=1,也表示运算出错。 2. CPU运算时规定两个字节的无符号(unsigned) 数相加,结果为9个bits(加上CF位), 因而其结果 不可能超出范围,所以 不考虑溢出问题,只考 虑是否有进位,即CF是0还是1。 3. 多字节有符号(signed) 数运算时(如果以字节 进行运算), 除最高字节按有符号数处理外, 其余 按无符号数进行处理。 现以两个unsigned 数相加和两个signed 数相加来对比,有 符号数的范围为 -128 +127, 结果超出范围时, OF=1 01111111 127 (+127) + 00000001 + 1 +(+ 1) 10000000 128 (+128) (SF= 1 、 ZF=0、PF=0、CF=0、AF=1、OF=1) (D6进位到D7,D7无进位到CF,所以OF=1) 10000001 129 (-127) +111111110 + 254 +(- 2 ) 01111111 383 - 129 为signed 数时, 结果影响了符号位, 出现错误 OF=1 ( SF=、 ZF= 、PF= 、CF= 、AF= 、OF= ) (D6无进位到D7,D7进位到CF,CF=1,OF=1) CPU用标志位来表明运算的状态结果 当有D6进位到D7, D7又进位到CF时, 即双进位时 或者无 进位时OF=0,反之OF=1,OF=1表示有溢出发生,例 01111111 127 (+127) +110000010 +130 + (-126 ) 00000001 257 (+ 1) (SF=0、ZF=0、PF=0、CF=1、AF=1、OF=0) 11111111 255 (- 1) +111111111 + 255 +(- 1) 11111110 510 - 2 双进位 OF=0,没发生溢出 ( SF= 、 ZF= 、PF= 、CF= 、AF= 、OF= ) CPU用标志位来表明运算的状态结果 寄存器(二) IPIP CSCS DSDS SSSS ESES 指令指针寄存器,又称指令计数器指令指针寄存器,又称指令计数器 1616位代码段寄存器位代码段寄存器, ,Code Segment registerCode Segment register 1616位数据段寄存器位数据段寄存器, ,Data Segment registerData Segment register 1616位堆栈段寄存器位堆栈段寄存器, ,Stack Segment registerStack Segment register 1616位附加段寄存器位附加段寄存器, ,Extra Segment registerExtra Segment register 微微 机机 原原 理理 及及 应应 用用 BIU(Bus Interface Unit) 结构图返回d 6字节的指令队列 8086在执行指令的同时,从内存中取下一条指令或下 几条指令放在指令队列中。一条指令执行完后,可立即译 码执行下一条指令,从而解决了以往CPU取指令期间,运 算器等待的问题。由于取指令和执行指令并行进行,从而 提高了CPU的效率。 注:当总线访问与取址冲突时,先完成取址的总线周期。 地址加法器 地址加法器用来将逻辑地址变换为20位的物理地址。 存储器的结构 微微 机机 原原 理理 及及 应应 用用 一 存储器的分段 二 存储器的地址 存储器的逻辑地址 存储器的物理地址 三 堆栈 存储器的分段 a. 8086内部数据结构是16bits的,即所有寄存器都是16bits的。 而8086系统中存储器可寻址的存储空间是1MB。 b. 外部寻址空间为1MB时,需要20根地址线。 c. 20根地址线无法直接用16bits的CPU寻址,于是想个办法: 段的方式。 d. 1MB的存储空间分为16个逻辑段(015),每个逻辑段容量 64KB 存储器的逻辑分段 每个逻辑段用一个段地址来标识,用于存放段地址的寄存器称为 段寄存器。段寄存器 数据段 代码段 堆栈段 存储器的地址 e. 四个段寄存器存每个段的首地址,寄存器是16bits 的。段内偏移地址也是16bits的,这两个16bits如 何组成20bits的绝对地址? 物理地址 = 段基址 X 16 + 偏移地址 f. 例: DS=1000H(段基址), SI=0050H(偏移地址) 物理地址:10050H CS=FE00H(段基址), IP=0400H(偏移地址) 物理地址:FE400H 存储器的地址 g. CS:IP DS:BX/SI/DI ES:BX/SI/DI SS:BP h. 16位寄存器寻址64KB。每个地址单元对应 的是一个字节。8bits 小结:存储器的物理地址和逻辑地址 我们可以把每一个存储单元看成具有两种类型 的地址:物理地址和逻辑地址。 采用分段结构的存储器中,任何一个逻辑地址 由段基址和偏移地址两个部分构成,它们都是 无符号的16位二进制数。 物理地址,也可称为绝对地址,它是20位的, 是唯一标识1M字节空间的某一字节的地址。 它是由逻辑地址变换得来的,程序用逻辑地址 编址,当CPU需要访问存储器时,必须完成如下 的地址运算: 物理地址 = 段基址 X 16 + 偏移地址 微微 机机 原原 理理 及及 应应 用用 存储器的分段 1 段 =64K字节 00000 16个 逻辑段 15 段 0FFFF 10000 0 段 1FFFF F0000 FFFFF =64K字节 =64K字节 微微 机机 原原 理理 及及 应应 用用 返回d 代码段、数据段与堆栈段 64KB 64KB 64KB 64KB 00000 10550 250A0 8FFB0 EFF00 FFFFF 代 码 段 数 据 段 附 加 段 堆 栈 段 1055 250A 8FFB EFF0 CS DS ES SS 返回d 8086/8088物理地址的计算 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0123015 地址加法器 190 150 物理地址 偏移地址 段地址 微微 机机 原原 理理 及及 应应 用用 物理地址的形成如下图所示,它是通过CPU的总线接口部件 BIU地址加法器来实现: 0 0 0 0 返回e 段寄存器和其他寄存器组合指向存储单元示意图 归纳段寄存器和其他寄存器组合指向存储单元示意图如下: 总结: 8086、8088内部有14个16位寄存器,按功能分为三类 : 通用寄存器通用寄存器 段寄存器段寄存器 控制寄存器控制寄存器 数据寄存器 :AX,BX,CX,DX 地址指针寄器:SP,BP 变址寄存器:SI,DI FR中: 6 位条件标志: OF,SF,ZF,CF、PF,AF 3位控制标志: TF,IF,DF 学习寄存器注意事项(问题思考): (1) AX , BX ,CX ,DX 是数据寄存器 可以作为16位寄存器使用,又可以作为8位寄存器使用。 但每个寄存器在使用时各有特殊之处。 问题: AX, BX, CX, DX能用来存放偏移地址吗?哪些可以? 哪些不可以? (2)16位的寄存器 问题: BX,BP,SP,SI,DI,IP存放的偏移地址在构成物理地址 时,与段地址是如何配合使用? (3)FR中的状态标志 问题:条件码标志、控制标志各位的含义是什么? 哪些标志可用程序进行控制? 4. 逻辑地址与物理地址是如何定义的?差别在那里? 5. 存储器是怎样编址的?同一个地址既可以看作字节 单元地址,又可看作字单元地址,怎样理解? 6. IBMPC机存储器分段有那些规定? 7. 系统加电复位时,会自动转到那个单元执行? 8. 重迭操作技术有什么好处? 9. 如何理解每个存储单元只有唯一的物理地址。 10.但可由不同的段地址和不同的偏移地址组成? 4.3 CPU 的引脚信号和工作模式 8086/8088 CPU 的工作模式: 两种工作模式:最小模式和最大模式 最小模式:只有一个CPU,小系统、单处理器; 最大模式:可以有多个CPU,中到大系统,多处理 器。 微微 机机 原原 理理 及及 应应 用用 Pin 33(MN/MX)=1 为最小模式,=0为最大模式 最小模式和最大模式时2431脚的信号含义不同 地 NMI 地 INTR CLK 1 2 4 7 11 3 5 8 12 16 6 9 13 17 20 10 14 18 15 19 Vcc(5V) BHE/S7 HLDA (RQ/GT1 ) MN/MX WR (LOCK) ALE (QS0) AD14 AD12 AD9 AD5 AD13 AD11 AD8 AD4 AD0 AD10 AD7 AD3 AD6 AD2 AD1 AD15 AD17/S4 AD16/S3 AD18/S5 AD19/S6 RD M/IO (S2) INTA (QS0) RESET HOLD (RQ/GT0 ) DT/R (S1) TEST DEN (S0) READY 40 39 37 34 30 23 36 33 29 25 35 32 28 24 21 31 27 23 26 22 8086CPU 地 A14 A12 A9 AD5 A13 A11 A8 AD4 AD0 A10 AD7 AD3 NMI 地 AD6 AD2 INTR AD1 CLK 1 2 4 7 11 3 5 8 12 16 6 9 13 17 20 10 14 18 15 19 Vcc(5V) A15 A17/S4 SS0 (HIGH) HLDA (RQ/GT1 ) A16/S3 A18/S5 MN/MX WR (LOCK) ALE (QS0) A19/S6 RD M/IO (S2) INTA (QS0) RESET HOLD (RQ/GT0 ) DT/R (S1) TEST DEN (S0) READY 40 39 37 34 30 23 36 33 29 25 35 32 28 24 21 31 27 23 26 22 8088CPU 4.3.1 8086/8088 CPU 的引脚信号和功能 4.3.1引脚信号和功能 20根地址线(输出)、16根数据线(I/O)、控 制线有的输入,有的输出,有的低电平有效,有 的高电平有效。 三总线:地址总线、数据总线、控制总线 为了减少引脚数,又不影响传送数据速度,采用 了分复用线。 1. AD15AD0(address data bus)地址数据复用引 脚(双向工作) 第一个总线周期输出要访问的存储器或IO端口地址。 其它总线周期传输数据。 在8088中,A8A15并不作复用,它们只用来输出地址, 称为A8A15。 2. A19S6A16/S3(address/status)地址/状态复用 引脚(输出) A19/S6A16/S3在总线周期的T1状态,用来输出地址的最高4 位。在总线周期的T2,T3,TW和T4状态时,用来输出状态信息 。 S6为0,用来指示80868088当前与总线相连,所以在T2,T3, TW和T4状态时,80868088总是使S6等于0,以表示 80868088当前连在总线上。S5表明中断允许标志的当前设置, 若为1,表示当前允许可屏蔽中断请求;若为0,则禁止一切可屏 蔽中断。S4,S3合起来指出当前正在使用哪段寄存器。(p80) 3. BHES7(bus high enable/status)高8位数据总线 允许状态复用引脚(输出) BHE A0 操作 所用的数据引脚 0 0 从偶地址开始读/写一个字 AD15AD0 0 1 从奇地址或奇端口读/写一个字 节 AD15-AD8 1 0 从偶地址或偶端口读/写一个字节 AD7-AD0 1 1 无效 从奇地址开始读/写一个字(需要两个总线周期) AD15-AD0 0 1 在第一个总线周期将低8位数字送到AD15-AD8 1 0 在第二个总线周期将高8位数字送到AD7-AD0 BHE:高8位数据总线允许信号; A0:一般常将A0信号作为低8位数据的选通信号 BHE 和 A0的代码组合和对应操作 注:P211图用低8位数据线 P251图用高8位数据线 其他主要引脚信号 NMI、INTR、RD、CLK、RESET、READY、 TEST、MN/MX、GND、VCC. 最小工作模式下的引脚信号: INTA、ALE、DEN、DT/R、M/IO、WR、 HOLD、HOLA、 其他主要引脚信号 4. NMI(non-maskable interrupt)非屏蔽中断引 脚(输入) 非屏蔽中断信号是一个由低到高的上升沿。 不受中断标志IF的影响,也不能用软件进行 屏蔽。 每当NMI端进入一个正沿触发信号时, CPU就会在结束当前指令后,进入对应于中断 类型号为2的非屏蔽中断处理程序。 其他主要引脚信号 5. INTR(interrupt request)可屏蔽中断请求信 号引脚(输入) 可屏蔽中断请求信号为高电平有效。 CPU在执行每条指令的最后一个时钟周期 会对INTR信号进行采样,如果CPU中的中断允 许标志为1,并且又接收到INTR信号,那么, CPU就会在结束当前指令后,响应中断请求, 进入一个中断处理子程序。 6. RD(read)读信号引脚(输出) 指出将要执行一个对内存或IO端口的读操作 。到底是读取内存单元中的数据还是IO端口中 的数据,这决定于MIO信号。 7. CLK(clock)时钟引脚(输入) 80868088要求时钟信号的占空比为33%, 即13周期为高电平,23周期为低电平。 80868088的时钟频率要求为5MHz,8086- 1的时钟频率为10MHz,8086-2的时钟频率则为 8MHz。时钟信号为CPU和总线控制逻辑电路提 供定时手段。 8. RESET(reset)复位信号引脚(输入) 复位信号为高电平有效。80868088要求复位信号至 少维持4个时钟周期的高电平才有效。复位信号来到 后,CPU便结束当前操作,并对处理器标志寄存器、 IP,DS,SS,ES及指令队列清零,而将CS设置为 FFFFH。当复位信号变为低电平时,CPU从FFFF0H 开始执行程序。 9. READY(ready)“准备好”信号引脚(输入) 由所访问的存储器或IO设备发来的响应信号,高电平 有效。“准备好”信号有效时,表示内存或IO设备准备 就绪,马上就可进行一次数据传输。CPU在每个总线周 期的T3状态开始对READY信号进行采样。如果检测到 READY 低电平,则在T3状态之后插入等待状态TW,在TW 状态,CPU也对READY进行采样,若READY仍为 低电平,则会继续插入TW,所以TW可以插入一个或 多个。直到READY变为高电平后,才进入T4状态, 完成数据传送过程,从而结束当前总线周期。 10. TEST(test)测试信号引脚(输入) 测试信号为低电平有效。TEST信号是和指令WAIT 结合起来使用的,在CPU执行WAIT指令时,CPU 处于空转状态进行等待;当8086的TEST信号有效 时,等待状态结束,CPU继续往下执行被暂停的指 令。 11. MNMX(minimummaximum mode control)最小最大模式控制信号引脚(输入) 它是最大模式及最小模式的选择控制端。此引 脚固定接为+5V时,CPU处于最小模式;如果 接地,则CPU处于最大模式。 12. GND地和Vcc电源引脚 80868088均用单一+5V电源。 4.3.2 最小工作模式 1. INTA(interrupt acknowledge)中断响应信 号(输出) 中断响应信号的输出端 用来对外设的中断请求作出响应。 对于80868088来讲,INTA信号是位于连续周 期中的两个负脉冲,在每个总线周期的T2,T3 和TW状态,INTA端为低电平。第1个负脉冲通 知外部设备的接口,它发出的中断请求已经得 到允许;外设接口收到第2个负脉冲后,往数据 总线上放中断类型码,从而CPU便得到了有关 此中断请求的详尽信息。 2. ALE(address latch enable)地址锁存允许信号( 输出) 地址锁存允许信号输出端,高电平有效。在任何一个 总线周期的T1状态,ALE输出有效电平,以表示当前 在地址数据复用总线上输出的是地址信息,地址锁 存器将ALE作为锁存信号,对地址进行锁存。要注意 ALE端不能被浮空。 3. DEN(data enable)数据允许信号 数据允许信号输出端。表示CPU当前准备发送或接受 一个数据。总线收发器将DEN作为输出允许信号。 4. DTR(data transmitreceive)数据收发(输出 ) DTR信号用来控制数据传送方向。如果DT R为高电平,则进行数据发送;如果DTR 为低电平,则进行数据接收。 5. MIO(memory/input and output)存储 器输入输出控制信号(输出) 此信号若为高电平,表示CPU和存储器之 间进行数据传输;若为低电平,表示CPU 和输入输出设备之间进行数据传输 。 6. WR(write)写信号(输出) 此信号为低电平有效。WR有效时,表示CPU 当前正在进行存储器或IO写操作。 7. HOLD(hold request)总线保持请求信号( 输入) 系统中CPU之外的另一个主模块要求占用总线请求 信号,在总线占有部件用完总线之后,会把HOLD信号 变为低电平,这样,CPU又获得了地址数据总线和控 制状态线的占有权。 8. HLDA(hold acknowledge)总线保持响应信号( 输出) 此信号为高电平有效。当HLDA有效时,表示CPU 对其他主部件的总线请求作出响应,与此同时,所有与 三态门相接的CPU的引脚呈现高阻抗,从而让出了总线 。 最小工作模式的典型配置 CLK RESET READY MN/MX ALE BHE A19A16 AD15AD0 DEN DT/R M/IO WR RD HOLD HLDA INTR INTA 8086 STB 地址锁存器 8282 (三片) 收发器 8286 OE(二片) T(可选) 8284A BHE 地址总线 数据总线 READY RESET 5V 控制总线 最小工作模式的数据传 输方式 (74LS373) (74LS245) 8282锁存器与8086的连接 ALE AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 AD8 AD9 AD15 A16 A17 A18 A19 BHE DI0 DI1 DI2 DI3 DI4 DI5 DI6 DI7 OE DO0 DO1 DO2 DO3 DO4 DO5 DO6 DO7 STB DI0 DI1 DI4 DI0 DI1 DI4 STB OESTB 数据 数据 地址 8086 8282 82828282 OE ALE引脚: 地址锁存 8286收发器和8088连接(发送) AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 DEN DT/R A0 A1 A2 A3 A4 A5 A6 A7 OE B0 B1 B2 B3 B4 B5 B6 B7 T 8088 8286 数据 总线 T=1 DEN:使能 DT/R:接收/发射选择 8286收发器和8088连接(接收) AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 DEN DT/R A0 A1 A2 A3 A4 A5 A6 A7 OE B0 B1 B2 B3 B4 B5 B6 B7 T 8088 8286 数据 总线 T=0 最小工作模式的数据传输方式 对于单一外设来说, 控制线并不需要用总线收发器进行驱 动. 当然, 如果系统中存储器和外设接口芯片多, 出于需要 , 也可以使用总线收发器. 最小模式系统中, 信号M/IO, RD和WR组合起来决定了系 统中数据传输的方式. 最小模式数据传输传输 方式 数据传输传输 方式M/IORDWR I/O读读001 I/O写010 存储储器读读101 存储储器写110 最小工作模式的典型配置 - 4.4 8086/8088 的主要操作功能 1 复位与启动 2 总线操作 3 中断操作 4 最小工作模式下的总线保持 4.4.1 系统的复位和启动操作 CLK RESET 输入 三态门 内部 RESET 输出信号 浮空 无作用状态 1. RESET:8086/8088的复位和启动操作是在RESET引脚上加 触 发信号。 1). 所有时序都发生在CLK节拍下。 2). 时序过程: 外部RESET信号到来 读入到CPU 半个周期(CLK为低)的 无作用状态 下一个CLK上升沿时, 进入复位状态,总线浮空 RESET至少保持4个时钟 周期高电平 4.4.1 系统的复位和启动操作 复位时时8086/8088 各内部寄存器的值值 标志寄存器清零 指令指针(IP)0000H CS寄存器FFFFH DS寄存器0000H SS寄存器0000H ES寄存器0000H 指令队列空 其他寄存器0000H P96 从FFFF:0000H处开始执行程序 2. 复位状态 2)所有三态输出总线变为高阻状态:数据线,地址线,BHE/S7 INTA、ALE、DEN、DT/R、M/IO、WR、 1)寄存器 3)ALE, HLDA降为低电平。 8086总线的工作周期 4.4.2 总线操作 时钟周期:每个CPU都有一个主频(8086主频10M,100ns) CLK 总线周期:对总线的一次操作。比如对存储器、I/O的一次读/写 8086/8088中一个最基本的总线周期由4个时钟周期组成,4个时 钟周期成为4个状态。 指令周期:完成一条指令。一条指令可能有多个总线周期组成。 8086总线周期 在一个最基本的总线周期中,常将四个时钟周期分别称为四个 状态,即T1状态、T2状态、T3状态、T4状态。典型的8086总 线周期序列如下图所示: T1T2T3TWT4T1T2T3T1T4T1T2T3TWT4T1TW Tw状态用来等待内存或I/O接口的响应 在两个总线周期之间执行空闲周期 完成一次访问存储器或外设操作所需的时间称为一个总线周期, 一般情况下它由4个时钟周期组成; 4.4.2 总线操作 8086总线周期 T1T2T3TWT4T1T2T3T1T4T1T2T3TWT4T1TW Tw状态用来等待内存或I/O接口的响应 在两个总线周期之间执行空闲周期 T1:CPU往多路复用总线上发出地址信息,指出要寻址的存储 单元或外设端口地址; 4.4.2 总线操作 T2:地址从总线上撤销,总线低16位置为高阻,为传输数据做准备; T3:传输数据,数据送到总线上; Tw:等待周期,READY信号表示外设未准备好,CPU等待。 Ti:空闲周期,一个总线周期后,不立即执行下一个总线周期, 系统总线处在空闲状态,执行空闲周期。 8086读操作时序 CLK M/IO A19/S6A16/S3 BHE/S7 AD15AD0 ALE RD DT/R DEN 高为读内存低为读I/O 地址输出 状态输出 BHE输出 地址输出数据输入 T1T2T3 TW(1 n) T4 8086读操作时序 T1 T2 T3 TW T4 (12) (13) 8086总线的工作周期(续1) 微微 机机 原原 理理 及及 应应 用用 T1状态: CPU送出M/IO信号; 往多路复用总线上发地址信息,以指出要寻址 的存储单元或外设端口的地址; 从ALE引脚上送出一个地址锁存信号; 送出BHE信号(是否可使用高8位数据线上的信 息); 送出DT/R信息。(用以数据总线收发器的数据 收发控制) 时序图 8086总线的工作周期(续2) 微微 机机 原原 理理 及及 应应 用用 T2状态: 总线的高四位(A16-A19)及BHE/S7用来输 出本总线周期状态信息。这些状态信息用来表示 中断允许状态,当前正在使用的段寄存器名等。 CPU从总线上撤消地址信号,而使总线的低16 位浮置成高阻状态,为数据传递做准备 送出RD(读)或WR(写)信号。 送出DEN信号(用以数据总线收发器的数据允许 控制) 时序图 8086总线的工作周期(续3) 微微 机机 原原 理理 及及 应应 用用 T3状态: (11) 内存或I/O端口将数据送上数据总线,CPU准 备读数。 (12) RD(读)或WR(写)信号继续有效。 CPU在T3的前沿(下降沿)查询READY,若 为低则插入TW一直到READY信号为高。 T4状态: (13) T4前沿CPU将数据读入,总线读周期完成。 各控制信号线和状态信号线进入无效状态。 时序图 8086总线的工作周期(续4) 微微 机机 原原 理理 及及 应应 用用 在什么情况下要插入TW等待周期? 在有些情况下,被写入的数据或被读入数据的 外设或存储器不能及时地配合CPU传送数据。这 时,外设或存储器会通过“READY ”信号线在T3状 态启动之前,向CPU发一个”数据未准备好“信号, 于是CPU会在T3之后插入一个或多个附加的时钟 周期TW, TW也叫等待状态,在TW状态,总线 上的信息情况和T3状态的信息情况一样。当指定 的存储器或外设完成数据传输时,便在 “READY ” 线上发出“准备好”信号,CPU接收到这一信号后, 会自动脱离TW状态进入T4状态。 时序图 8086写操作时序 CLK M/IO A19/S6A16/S3 BHE/S7 AD15AD0 ALE WD DT/R DEN 高为写内存低为写I/O 地址输出 状态输出 BHE输出 T1T2T3 TW T4 地址输出 数据输出 8086写操作时序 (一) 同步操作 有了中断功能, 就可以使CPU和外设同时工作 (二) 实现实时处理 当计算机用于实时控制时, 中断是一个十分重要 的功能 (三) 故障处理 计算机利用中断可以自行处理一些意外情况, 而 不必停机或报告操作者 4.4.2 中断操作 中断是解决快速的CPU与慢速的外设之间交换数 据的矛盾的一种比较好的方法. 8086/8088的中断分类 INT n指令 中 断 逻 辑 INT3 指令 除数为0 中断 单步 中断 INT0 指令 中断控制系统 (8259A ) 非屏蔽中断请求 可 屏 蔽 中 断 请 求 NMI INTR 软件中断 硬件中断 软件中断、硬件中断 1、什么是软件中断? CPU根据软件中的某条指令或者软件对某个标志位的设置 而产生的中断称为软件中断。它与硬件电路无关。 2、什么是硬件中断? 通过外部的硬件电路产生的中断称为硬件中断,也称为外 部中断。 3、什么是可屏蔽中断?什么是非屏蔽中断? 可屏蔽中断是通过CPU的INTR引脚引入,当中断允许标 志IF=1时,允许中断,当中断允许标志IF=0时,禁止中断 。非屏蔽中断不受IF标志控制,由CPU的NMI引脚引入, CPU必须响应。 中断操作 几个基本概念: 中断类型码,中断向量,中断向量表 1. 什么是中断类型码? 每一个中断都对应着一个类型码,即相当于中断的 序号。 0FFH (P100) 2. 什么是中断向量? 中断向量是中断处理子程序的入口地址,每一个中 断向量占 4个字节(CS:IP)。前两个单元存放中 断子程序入口地址的偏移量(IP),低位在前,高位 在后;后两个单元存放中断子程序入口地址的段地址 (CS)。 中断操作 几个基本概念: 中断类型码,中断向量,中断向量表 3. 什么是中断向量表? 中断向量表是专门用来存储中断向量的内 存区域;8086系统在内存中把0段的0000 03FFH区域设置为中断向量表,每一个中断向 量占4个字节(CS:IP),前两个字节存放偏 移地址(IP),后两个字节存放段地址(CS) ,低位在前高位在后。中断向量在表中按中断 类型的序号从0字节开始顺序存放。 中断操作 几个基本概念: 中断类型码,中断向量,中断向量表 中断类型码(几号中断) 得到对应的中断向量存放的位置 中断向量(中断程序入口地址)4个字节 装入CS:IP中,转入中断程序 8086/8088中断向量表 CS IP CS IP CS IP CS IP CS IP CS IP CS IP 0000:0000H 0000:0003H 0000:0004H 0000:0007H 0000:0008H 0000:000BH 0000:000CH 0000:000FH 0000:0010H 0000:0013H 0000:0014H 0000:007EH 0000:007FH 0000:03FFH 除数为0的中断 单步中断 非屏蔽中断 断点中断 溢出中断 类型0 类型1 类型2 类型4 类型3 类型5 类型31 类型32 类型255 (十进制) (十进制) 专用中断(共5个 ) 保留中断(共27个) 供用户定义的中断 (共225个) 005C:90, 005D:78 005E:34, 005F:12 中断类型序号只与中断向量 表有关,与中断向量没有直接 关系,每一个中断类型序号, 对应中断向量表中4个字节的 存储单元。 两个地址: 中断向量的地址 程序入口地址:中断向量 中断向量、中断类型码、中断向量表 例如,中断类型码为17H的中断处理子程序存放在 2345:7890H开始的内存区域中,2345:7890H即 为中断向量,这个中断向量在中断向量表中的位置 为0000:005CH开始的4个字节,前两个字节存放 偏移地址(IP),后两个字节存放段地址(CS) ,且低位在前高位在后,显然,0段的005CH、 005DH、005EH、005FH单元中的值分别为90H、 78H、45H、23H。 用中断类型码乘以4就可以得到这个类型码对应的 中断向量在中断向量表中的最低位地址 ,例如17H X 4 = 5CH P108,4.14的问题 80868088中断响应流程 是内部中断吗? 是非屏蔽中断吗? 是可屏蔽中断吗? TF 1 吗? 执行下一条指令 结束当前指令 IF1吗?取中断类型码 标志推入堆栈 令TEMPTF 清除IF和TF CS和IP推入堆栈 进入中断处理程序 TEMP1吗? 执行中断处理程序 弹出IP和CS 弹出标志 有NMI吗? 是 是 是 是 否 否 否 否 否 是 响应 中断 有 无 是 否 返回断点 中断操作 从数据总线上读取中断类型码,存入内部暂存器 标志寄存器的值推入堆栈
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生产酒瓶销售合同范本
- 承包荒山流转合同范本
- 嫁接果树售卖合同范本
- 社工站站长合同范本
- 餐饮加盟投资合同范本
- 单位汽车出租合同范本
- 深圳购房预售合同范本
- 租赁渔场合同范本
- 管道经销合同范本
- 物流报关合同范本
- 专题09 Module 5语法Grammar 特殊疑问句的用法-2021-2022学年七年级下册单元重难点易错题精练(外研版)
- 《工艺管理与改善》课件
- 《交通事故车辆及财物损失价格鉴证评估技术规范》
- 《广东省花生全程机械化栽培技术规程》
- 品管圈PDCA改善案例-降低住院患者跌倒发生率
- 外科微创手术管理制度
- 心理危机干预的伦理问题探讨-洞察分析
- 智慧校园医疗系列
- 《中小学校园食品安全和膳食经费管理工作指引》专题讲座
- 梨专题知识讲座
- GB/T 44601-2024信息技术服务服务生存周期过程
评论
0/150
提交评论