第二章(8086微处理器).ppt_第1页
第二章(8086微处理器).ppt_第2页
第二章(8086微处理器).ppt_第3页
第二章(8086微处理器).ppt_第4页
第二章(8086微处理器).ppt_第5页
已阅读5页,还剩135页未读 继续免费阅读

下载本文档

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

文档简介

1、8086计算机系统组成,CPU的性能指标,字长是指CPU能同时处理的数据位数,也称为数据宽度。字长越长,计算机能力越高,速度越快,但工艺越复杂。 主频是CPU的始终频率,这和CPU的运算速度密切相关,主频越高,运算速度越快。, 8086CPU的编程结构 8086CPU的存储器结构和I/O编址 8086CPU引脚信号和工作模式 8086CPU的操作和时序,第二章 8086微处理器, 8086CPU内部结构 8086计算机系统指令操作过程 8086CPU的寄存器结构,一、8086的编程结构,8086微处理器内部结构,8086的内部结构从功能分成两个单元 1. 总线接口单元BIU管理8086与系统总

2、线的接口,负责CPU对内存和外设传送数据; 2. 执行单元EU 负责指令的译码、执行和数据的运算 两个单元相互独立,分别完成各自操作。 两个单元可以并行执行,实现指令取指和执行的流水线操作。,取指令1,执行指令1,取指令2,执行指令2,取指令1,执行指令1,取指令2,执行指令2,取指令3,执行指令3,t0,t1,t2,t3,t4,t,非流水线操作8085,流水线操作 8086,在t0t4时间间隔中,8085执行了2条指令。 在t0t4时间间隔中,理想情况下 ,8086可执行3条指令。,8086/8088 CPU的内部结构,1执行部件(EU):从BIU的指令队列中取指令,指令译码,向EU各部件发

3、出控制命令完成指令功能。 包括:通用寄存器组:AX,BX,CX,DX,SP,BP,SI,DI 暂存寄存器,PSW ALU 和EU控制接口电路,16位的ALU数据总线和8位的队列总线用于EU内部及 EU与BIU之间的通信,2总线接口部件 (BIU):根据EU的请求,完成CPU与存储器,CPU与I/O设备之间的信息传递。 在取指令时,从存储器的指定位置取出指令送入指令队列; 执行指令时,根据EU命令对指定存储单元或I/O端口存取数据 包括: CS、DS、SS、ES、IP、地址加法器、指令队列,内部寄存器,总线控制电路。,8086/8088 CPU的内部结构,BIU的操作原则,BIU中的指令队列有2

4、个或2个以上字节为空时,BIU自动启动总线周期,从存储单元取出指令。填充指令队列。直至将指令队列填满,BIU才进入空闲状态。 当BIU接到EU申请总线的请求,若BIU正忙(正在执行取指令的总线周期),则必须等待BIU执行完当前的总线周期,方能响应EU请求;若BIU空闲,则立即执行EU申请总线的请求。,EU执行转移、调用和返回指令时,若下一条指令不在指令队列中,则队列中的指令被自动清除,BIU根据转移、调用和返回指令指示的目标地址重新取出指令并填充指令队列。,EU的操作原则,EU每执行完一条指令,从BIU指令队列的队首取指令。系统初始化后,指令队列为空,EU需要等待BIU从内存取指填充指令队列。

5、 EU从指令队列取得指令后,译码并执行指令。若该指令需要取操作数或存操作结果,也就是说需要访问存储器或者I/O时,EU向BIU发出访问总线的请求。,8086的指令流水线,指令的执行过程:,任何一条指令都是有操作码和操作数组成: 例如:MOV AX, 2000H ; B8 00 20,已知DS3000H,CS1000H,(32000H)10H, (32001H)20H,下面用动画形式演示如下指令的执行过程 1000:100 MOV AL,2000H; A0 00 20 1000:103 ADD AL,02H; 04 02 1000:105 HLT; F4,8086计算机系统指令操作过程,返回,8

6、088的指令执行过程,8086 CPU的寄存器结构, 通用寄存器组(8个) 段寄存器(4个) 指令指针寄存器IP (1个) 标志寄存器FR (1个),一、 通用寄存器组,主要功能: 保存CPU分析和执行时产生的中间结果 访问内存速度远远低于CPU的运算速度 通用寄存器组可分为三组: 数据寄存器AX、BX、CX和DX,可用来存放16位或8位数据; 变址寄存器SI和DI,只能16位一起使用; 指针寄存器BP和SP,只能16位一起使用。,1. 数据寄存器,AX称为累加器(Accumulator) 使用频度最高。用于算术、逻辑运算以及与外设传送信息等; BX称为基址寄存器(Base address R

7、egister) 当计算内存地址时,常用做存放内存的逻辑地址; CX称为计数器(Counter) 作为循环和串操作等指令中的隐含计数器; DX称为数据寄存器(Data register) 常用来存放双字数据的高16位,或当间接寻址时存放外设端口地址。,2 变址寄存器,16位变址寄存器SI和DI 常用于存储器变址寻址方式时提供地址 SI是源地址寄存器(Source Index) DI是目的地址寄存器(Destination Index) 在串操作类指令中,SI、DI还有较特殊的用法,现在不必完全理解,以后会详细展开,3 指针寄存器,指针寄存器用于寻址内存堆栈内的数据 SP为堆栈指针寄存器(Sta

8、ck Pointer),指示堆栈段栈顶的位置(偏移地址) BP为基址指针寄存器(Base Pointer),表示数据在堆栈段中的基地址 SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址,堆栈(Stack)是主存中一个特殊的区域,采用“先进后出”或“后进先出”存取操作方式、而不是随机存取方式。 用8088/8086形成的微机系统中,堆栈区域被称为堆栈段,8086CPU总线接口设有4个16位段寄存器,分别为代码段寄存器CS,数据段寄存器DS,附加段寄存器ES和堆栈段寄存器SS。,二、 段寄存器组,8088/8086有4个16位段寄存器 CS(代码段)指明代码段的起始地址, 存放正

9、在运行的程序段地址 SS(堆栈段)指明堆栈段的起始地址, 存放堆栈栈顶地址用于堆栈操作,DS(数据段)指明数据段的起始地址,存放正在运行的程序中所用数据段地址(指向源操作数所在段) ES(附加段)指明附加段的起始地址(指向目标操作数所在数据段) 每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途,IP的内容由BIU修改,始终指向下一条要取入指令队列的指令的偏移地址。 特殊情况:程序跳转,三、 指令指针寄存器IP,指令指针寄存器IP(Instruction Pointer)指示代 码段中指令的偏移地址; 随着指令的执行,IP将自动修改以指示下一条指 令所在的存储器位置; 它与代码

10、段寄存器CS联用,确定下一条指令的物 理地址; 计算机通过CS : IP寄存器来取指,从而控制指令 序列的执行流程 IP寄存器是一个专用寄存器,用户不能直接访问,8086CPU设置了1个16位标志寄存器,其中 规定9个为标志位 ,一类叫状态标志,用来表示 运算结果的特征,它们是CF、PF、AF、ZF、SF 和OF;另一类叫控制标志,用来控制CPU的操 作,它们分别是IF、DF和TF。,四、 标志寄存器FR,指令的执行与标志有很大关系。 标志分成两类: 状态标志用来记录程序运行结果的状态信息, 许多指令的执行都将自动地改变它。 CF OF AF SF ZF PF 控制标志可由用户根据需要用指令进

11、行设置, 用于控制处理器的具体工作方式。 DF IF TF,符号标志SF(Sign Flag),运算结果最高位为1,则SF=1;否则SF=0。 例如: 3AH + 7CHB6H最高位D71:SF=1 86H + 7CH00H最高位D70:SF=0 有符号数利用最高有效位(MSB)来表示它的符号。所以,运算结果的MSB与符号标志SF相一致。,全零标志ZF(Zero Flag),若运算结果为全0,则ZF=1,否则ZF=0。例如: 3AH + 7CHB6H 结果不是零:ZF=1 86H + 7CH00H 结果是全零:ZF=0 注意:ZF为1表示的结果是0,奇偶标志PF(Parity Flag),当运

12、算结果最低字节中“1”的个数为零或偶数时,PF=1;否则PF=0(奇校验)。 例如: 3AH + 7CHB6H10110110B, 结果中有5个1,是奇数,则 PF=1 注意:PF标志仅反映最低8位中“1”的个数是偶或奇,即使是进行16位字操作。,进位标志CF(Carry Flag),当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF = 1;否则 CF=0。 例如(以8位运算为例,8088/8086中为16位): 3AH + 7CHB6H没有进位:CF=0 AAH + 7CH26H有进位:CF=1,辅助进位标志AF(Auxiliary Carry Flag),运算时D

13、3位(低半字节)有进位或借位时,AF=1;否则AF=0。例如: 3AH + 7CHB6H D3向前有进位:AF=1 这个标志主要由处理器内部使用,用于十进制算术运算的调整,用户一般不必关心。,1,溢出标志OF(Overflow Flag),若算术运算的结果有溢出,则OF=1;否则 OF=0。例如: 3AH (58)+ 7CH(124)B6H(182) 产生溢出:OF=1 AAH(-86) + 7CH( 124)26H( 38)没有溢出:OF=0,什么是溢出,“溢出”针对有符号数 处理器内部以补码表示有符号数 8位表示范围是:-128 +127 16位表示范围是:-32768 +32767 如果

14、运算结果超出了这个范围,就是产生了溢出,溢出发生时,说明有符号数的运算结果不正确 以8位运算为例: 3AH + 7CHB6H即 58 + 124182 结果超出-128127故溢出,所以OF=1 另一方面,补码B6H表达真值是-74,显然运算结果也不正确。,溢出标志和进位标志的区别,溢出标志OF和进位标志CF是两个意义不同的标志 进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确; 溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。,如何运用溢出和进位,处理器对两个操作数进行运算时, 根据无符号运算有无进位来设置进位标志CF; 根据有符号运算是否超出表示范围来设置溢出标志O

15、F。 应该利用哪个标志,则由程序员来决定。 如果参加运算的操作数是无符号数,用户应该关心进位标志 如果参加运算的操作数是有符号数,用户应该关心溢出标志。,方向标志DF(Direction Flag),用于串操作指令中,控制地址的变化方向: 设置DF0,串操作后存储器地址自动增量(增址) ; 设置DF1,串操作后存储器地址自动减量(减址) 。 CLD 指令复位方向标志:DF0 STD 指令置位方向标志:DF1,中断允许标志IF(Interrupt-enable Flag),用于控制外部可屏蔽中断是否可以被处理器响应: 设置IF1,则允许中断; 设置IF0,则禁止中断。 CLI 指令复位中断标志:

16、IF0 STI 指令置位中断标志:IF1,跟踪标志TF(Trap Flag),用于控制处理器是否进入单步执行方式: 设置TF0,处理器正常工作; 设置TF1,处理器每执行一条指令就中断一次,中断编号为 1 (称单步中断) TF 也被称为单步标志。 单步执行和单步调试 利用单步中断可对程序进行逐条指令的调试。 这种逐条指令调试程序的方法就是单步调试。,习 题,1. 8086cpu有多少根数据线,多少根地址线?其寻址范围是什么? 2. 某微机具有32M字的内存空间,其CPU的地址总线应有_条? 3. 8086/8088CPU中指令队列有什么作用?其长度分别是多少个字节? 4. 8086CPU中有哪

17、些寄存器?各有什么用途?,习 题,5. 8086cpu有哪些标志位?它们的含义和作用如何? 6. 下列各种情况下应判定哪个标志位并说明其状态: (1). 比较两个无符号是否相等; (2). 比较两个无符号相减后比较大小; (3). 两个数运算后结果是正数还是负数; (4). 两个数相加后是否产生溢出; 7. 执行5439H+4536H(99A3H)时个状态标志位的变化,二、8086的存储器结构和编址方案, 8086的存储器结构 8086的I/O编址方案,8086的存储器结构, 8086的存储器中数据的存储格式 8086的存储器的组成 存储器的分段管理 存储器的物理地址生成 堆栈段的使用,存储器

18、是计算机存储信息的地方。掌握数据存储格式,以及存储器的分段管理对以后的汇编程序设计非常重要。 你能区别寄存器、存储器(主存)、外存(包括硬盘、光盘、磁带等存储介质)吗?,寄存器、存储器和外存的区别,寄存器是微处理器(CPU)内部暂存数据的存 储单元,以名称表示,例如:AX,BX.等; 存储器也就是平时所说的主存,也叫内存,可直 接与CPU进行数据交换,主存利用地址区别;,寄存器、存储器和外存的区别,外存主要指用来长久保存数据的外部存储介质, 常见的有硬盘、光盘、磁带、U盘等;外存的数据只 能通过主存间接地与CPU交换数据。 程序及其数据可以长久存放在外存,在运行需 要时才进入主存。,1. 数据

19、的格式,计算机中信息的单位有: 位(bit)、字节(byte)、字(word)、 双字(double word)、KB、MB、GB等 在存储器中,信息的存储单元是:字节 80 x86微处理器对多字节数据采用: 小端方式(little endian) 存储的数据如果对齐边界,则存取速度较快。,存储单元及其存储内容,每个存储单元都有一个编号存储器地址 每个存储单元存放一个字节的内容 例如:00002H单元存放有一个数据34H,可以 表示成 :00002H34H,小端方式,多字节数据在存储器中占据多个连续的存储单元: 存放时,低字节存于低地址,高字节存于高地址; 多字节数据占据的地址空间用它的低地址

20、来表示。 例如: “字”单元: 00002H = 1234H “双字”单元: 00002H = 78561234H 80 x86处理器的“低对低、高对高”的存储形式,被称为“小端方式” 。,数据的地址对齐,同一个存储器地址可以表示为:字节单元地址、字单元地址、双字单元地址等等(视指令的具体情况)。 对准字:字的地址是偶数地址,即从偶数地址开始存放;非对准字:字的地址是奇数地址,即从奇数地址开始存放;,数据的地址对齐,将字单元安排在偶地址(xx.xx0 B),将双字单元安排在模4地址(xxxx00 B)的做法,被称为“地址对齐(Align)”。 对于地址不对齐的数据,处理器访问时,需要付出额外的

21、访问时间。要取得较高的存取速度,应该将数据的地址对齐。,2. 存储器的组成,奇偶存储体示意图,8086系统中,存储器采用分体结构,即1M字节的存储空间分为2个512K字节的存储体,一个包含偶数地址(从FFFF0H、FFFF2H、 FFFFEH) ,另一个包含奇数地址(从FFFF1H、FFFF3H、 FFFFFH) ,两者采用字节交叉编址方式。,其中偶地址存储体固定与低8位数据总线相连,奇地址存储体固定与高8位数据总线相连, BHE和A0相互配合,使CPU可以访问一个存储体中的一个字节或同时访问两个存储体中的一个字。 BHE和A0的控制作用如下表所示:,BHE与A0组合对应的控制,3. 存储器的

22、分段管理,8088/8086有20条地址线, 最大可寻址空间为 2201MB, 可寻址的地址范围为 00000HFFFFFH,该地址称物理地址 硬件用20位的物理地址来对存储单元进行寻址。,由于8088/8086中的地址寄存器都是16位 最多表示 216 = 64 KB 个地址编号 用户不能直接使用20位的物理地址,编程时需要使用逻辑地址来寻址存储单元。 逻辑地址由两个16位数构成,其形式为: 段的起始地址 : 段内的偏移地址 (16位段地址) :( 16位偏移量),存储器中的逻辑地址和物理地址,逻辑地址:采用分段结构的存储器中,任何一个地址都由段基址和偏移地址两部分构成,如 CS=9482H

23、,IP=2350H,可以表示为9482:2350, 物理地址:存储器的绝对地址(00000HFFFFFH),是CPU访问存储器的实际寻址地址,将存储器分段管理。即将存储空间分为若干逻辑段,每个逻辑段长度64 KB,可以分成至少16个段(015)。各段允许重叠。,每段独占64KB,每段重叠分配,请注意重叠的含义:根据实际需要设置每个段区,不一定非占据64K的最大段区间。,要求:每段都从低4位为0的存储单元开始,段首地址的 高16位称为段基地址,存放在某个段寄存器中。段内偏移地址,相对于段首地址的偏移量。,4. 存储器的物理地址的生成,例: DS=3200H 指令中给出的偏移地址: 1050H,物

24、理地址 = 3200H10H +1050H =33050H,物理地址计算中段寄存器的作用: 指令物理地址 =(CS)10H+ (IP) 操作数物理地址 =(DS)10H+偏移地址 = (ES)10H+偏移地址 (偏移地址由指令寻址方式确定) 堆栈操作物理地址 = (SS)10H+(SP),如何分配各个逻辑段,程序的指令序列必须安排在代码段 程序使用的堆栈一定在堆栈段 程序中的数据默认是安排在数据段,也经常安排 在附加段,尤其是串操作的目的区必须是附加 段数据的存放比较灵活,实际上可以存放在任何 一种逻辑段中。,演示,逻辑段的分配,1MB空间的分段,1MB空间最多能分成多少个逻辑段? 每隔16个

25、存储单元就可以开始一个段,所以1MB最多可以有: 2201621664K 个段 1MB空间最少能分成多少个逻辑段? 每隔64K个存储单元开始一个段,所以1MB最少可以有: 22021616 个段,习 题,1. 简述8086系统中物理地址的形成过程。 2. 8086系统中的存储器为什么要采用分段结构?有什么好处? 3. 8086存储器中存放数据字时有“对准字”和“非对准字”之分,请说明它们的差别。 4. 已知当前数据段位于存储器的B4000H到C3FFFH范围内,则段寄存器DS的内容为多少?,习 题,5. 8086系统分为哪两个存储体?它们如何与地址、数据总线相连接? 6. 8086系统中,最多

26、可以有_个段地址,任意相邻的两个段地址相距_个存储单元。 7. 两个逻辑地址分别为2003H:1009H和2101H:0029H,它们对应的物理地址是多少?说明了什么?,习 题,8. 若已知当前(DS)=7F06H,在偏移地址为0075H开始的存储器中连续存放6个字节的数据,分别为11H, 22H, 33H, 44H, 55H和66H。请指出这些数据在存储器中的物理地址。如果要从存储器中读出这些数据,至少需要访问几次存储器?各读出哪些数据?,习 题,9. 某程序在当前数据段中存有两个数据字0ABCDH和1234H,它们对应的物理地址分别为3FF85H和40AFEH,若已知当前(DS)3FB0H

27、,请说明这两个数据字的偏移地址,并用图说明它们在存储器中的存放格式。,所谓堆栈,是在存储器中开辟的一个区域,用来存放需要暂时保存数据,采用先进后出或者后进先出的方式。 8086系统中的堆栈段是由段定义语句在存储器中定义的一个段,和其他逻辑段一样,它可以在存储器1MB空间内任意浮动,堆栈段容量小于等于64KB。 段基址由堆栈寄存器SS指定,栈顶由堆栈指针SP指定。堆栈的地址增长方式是向下增长的,即随着堆栈内容的增加,堆栈指针的值是减小的。,5. 堆栈段的使用,若已知当前(SS)=1000H, (SP)=2000H, 那么堆栈在存储器中的分布情况如图所示:,5. 堆栈段的使用,栈顶,在8086系统

28、中,堆栈仅以字为单位进行操作,并且堆栈中的数据项必须对准字存储,即低字节在偶地址,高字节在奇地址,以保证每访问一次堆栈就能压入或弹出一个字的信息。,5. 堆栈段的使用,POP AX AX - SP SP - SP+2,PUSH AX SP - SP-2 SP- AX,举 例,1. 在某系统中,已知当前(SS)2360H, (SP)0800H,请说明该堆栈段在存储器中的物理地址范围。若往堆栈中存入20个字节数据,那么SP的内容为什么值?并用图说明它们在存储器中的存放格式。 分析:堆栈的物理地址范围是23600H23E00H。当向堆栈存入20个字节数据时,SP内容为0800H-14H=07ECH。

29、,举 例,2. 设(SS)2250H,(SP)0140H,若在堆栈中放入5个字,则栈顶的物理地址为_22630H_, 此时SP的内容为: ; 如果又从堆栈中取出3个,则栈顶的物理地址为222636H_,此时SP的内容为: ;,8086的I/O组织,CPU与外部设备通过I/O接口电路连接 外部设备通过地址区分:统一编址,独立编址。 一个外部设备具有多个寄存器(数据、状态、控制等),通过不同总线与CPU连接。每个寄存器有一个地址,称为端口地址(端口号)。 端口号具有唯一性(类似于内存地址)。,8086/8088 I/O寻址 直接寻址28=256(用A0A7 ) 间接寻址(用DX)64KB,8086

30、的I/O组织,8086CPU要访问某个端口,BIU只需简单把该端口的端口地址放到地址总线的低16位线上,就可以对该端口地址进行访问。 在8086指令系统中,可以有两种方式在I/O指令中指出端口地址,一种是把端口地址规定为在指令中的一个固定值,另一种是预先将端口地址送入DX寄存器。,8086 的输入/输出结构(编址方案),独立编址与统一编址方式 专用的I/O指令:IN,OUT 例如:a:IN AL, 0F0H; b: IN AX, 0F0H; c:MOV DX, 0FF0H; IN AL, DX; d:MOV DX, 0FF0H; IN AX, 0F0H;, 8086的引脚和功能 8086的最小

31、和最大模式系统 8086最小模式典型配置,三、8086的引脚信号和工作模式,8086 CPU的引脚和功能,CPU的外部特性表现在其引脚信号上,学习时请特别关注以下几个方面: 引脚的功能 信号的流向 有效电平 三态能力,除高电平1、低电平0外,引脚还有一个高阻状态,信号无效,8086 CPU的外部引脚图,8086 CPU的引脚信号,a. 数据和地址引脚 b. 读写控制引脚 c. 中断请求和响应引脚 d. 总线请求和响应引脚 e. 其它引脚,1. 数据和地址引脚,AD15AD0(Address/Data) 地址/数据分时复用引脚,双向、三态 在访问存储器或外设的总线操作周期中,这些引 脚在第一个时

32、钟周期(T1状态)输出存储器或I/O 端口的地址A15A0; 其他时间用于传送8或16位数 据D15D0,A19/S6A16/S3(Address/Status) 地址/状态分时复用引脚,输出、三态 这些引脚在访问存储器的第一个时钟周期T1状态输出最高4位地址A19A16, 在总线周期的其他时间(即T2、 T3、 Tw和T4状态)输出状态信号S6S3,S6 始终为低。 S5 是中断允许标志状态位,为1允许中断。 S4和S3 指定那一个段寄存器正在被使用。 S4 S3 含义 0 0 当前正在使用ES 0 1 当前正在使用SS 1 0 当前正在使用CS或未用 1 1 当前正在使用DS,2. 读写控

33、制引脚,ALE(Address Latch Enable) 地址锁存允许,输出、三态、高电平有效 ALE引脚高电平有效时,表示复用引脚:AD15AD0和A19/S6A16/S3正在传送地址信息 由于地址信息在这些复用引脚上出现的时间很短暂,所以系统可以利用ALE引脚将地址锁存起来,IO/M(Input and Output/Memory) I/O或存储器访问,输出、三态 该引脚输出IO有效时,表示CPU将访问I/O端口, 这时地址总线A15A0提供16位I/O口地址 该引脚输出M有效时,表示CPU将访问存储器,这时地址总线A19A0提供20位存储器地址 DMA传送时,IO/M*或IO*/M置为

34、高阻,WR(Write) 写控制,输出、三态、低电平有效 有效时,表示CPU正在写出数据给存储器或 I/O端口 RD(Read) 读控制,输出、三态、低电平有效 有效时,表示CPU正在从存储器或I/O端口读 入数据,IO/M*、WR*和RD*是最基本的控制信号 组合后,控制4种基本的总线周期,READY 存储器或I/O口就绪,输入、高电平有效 在总线操作周期中,8088/8086CPU会在第3个时钟周期的前沿测试该引脚 如果测到高有效,CPU直接进入第4个时钟周期 如果测到无效,CPU将插入等待周期Tw CPU在等待周期中仍然要监测READY信号,有效则进入第4个时钟周期,否则继续插入等待周期

35、Tw。,DEN*(Data Enable) 数据允许,输出、三态、低电平有效 有效时,表示当前数据总线上正在传送数据, 可利用它来控制对数据总线的驱动 DT/R*(Data Transmit/Receive) 数据发送/接收,输出、三态 该信号表明当前总线上数据的流向 高电平时数据自CPU输出(发送) 低电平时数据输入CPU(接收),3. 中断请求和响应引脚,INTR(Interrupt Request) 可屏蔽中断请求,输入、高电平有效,为电平触发信号 有效时,表示请求设备向CPU申请可屏蔽中断 该请求的优先级别较低,并可通过关中断指令CLI清除标志寄存器中的IF标志、从而对中断请求进行屏蔽

36、,INTA*(Interrupt Acknowledge) 可屏蔽中断响应,输出、低电平有效 有效时,表示来自INTR引脚的中断请求已被CPU响应,CPU进入中断响应周期 中断响应周期是连续的两个,每个都发出有效响应信号,以便通知外设他们的中断请求已被响应、并令有关设备将中断向量号送到数据总线,NMI(Non-Maskable Interrupt) 不可屏蔽中断请求,边缘触发信号,输入、上升 沿有效,有效时,表示外界向CPU申请不可屏 蔽中断,该请求的优先级别高于INTR,并且不能在CPU内被屏蔽 当系统发生紧急情况时,可通过他向CPU申请不可屏蔽中断服务,主机与外设进行数据交换通常采用可屏蔽

37、中断 不可屏蔽中断通常用于处理掉电等系统故障,4. 总线请求和响应引脚,HOLD 总线保持(即总线请求),输入、高电平有效 有效时,表示总线请求设备向CPU申请占有总线 该信号从有效回到无效时,表示总线请求设备对 总线的使用已经结束,通知CPU收回对总线的控 制权,DMA控制器等主控设备通过HOLD申请 占用系统总线(通常由CPU控制),HLDA(HOLD Acknowledge) 总线保持响应(即总线响应),输出、高电平有效 有效时,表示CPU已响应总线请求并已将总线释放 此时CPU的地址总线、数据总线及具有三态输出能力 的控制总线将全面呈现高阻,使总线请求设备可以顺 利接管总线,待到总线请

38、求信号HOLD无效,总线响 应信号HLDA也转为无效,CPU重新获得总线控制权,5. 其它引脚,RESET 复位请求,输入、高电平有效 该信号有效,将使CPU回到其初始状态;当他再度返回无效时,CPU将重新开始工作 复位时,CPU结束当前操作,对DS,SS,ES,IP及标志寄存器清零,将CS置为FFFFH。 8088/8086复位后CSFFFFH、IP0000H,所以程序入口在物理地址FFFF0H。,于是CPU从FFFF0H开始执行程序,FFFF0H处放有一条JMP指令,转到系统程序入口处, 进行初始化,引导到监控程序。 注意:8088/8086复位后,程序入口的物理地址 CLK(Clock)

39、时钟输入 系统通过该引脚给CPU提供内部定时信号。8086的标准工作时钟为10MHz,Vcc 电源输入,向CPU提供5V电源 GND 接地,向CPU提供参考地电平 MN/MX(Minimum/Maximum) 组态选择,输入接高电平时,8088/8086引脚工作在最小组态;反之,8088/8086工作在最大组态,TEST 测试,输入、低电平有效 该引脚与WAIT指令配合使用 当CPU执行WAIT指令时,他将在每个时钟周期对该引脚进行测试:如果无效,则程序踏步并继续测试;如果有效,则程序恢复运行 也就是说,WAIT指令使CPU产生等待,直到引脚有效为止 在使用协处理器8087时,通过引脚和WAI

40、T指令,可使8088与8087的操作保持同步,8086 的最小和最大模式系统,最小模式:系统中只有一片8086/ 8088,其存储容量不大,所要连的I/O端口也不多,所有的总线控制信号都直接由8086或8088产生。总线控制逻辑电路被减到最小。 最大模式:构成的系统较大,可能包含不只一片微处理器,或要求有较强的驱动能力,带有一个总线控制器8288。 CPU引脚:由MN/MX*(33)决定,2431功能不同,微型计算机系统的硬件,控制总线CB,数据总线DB,地址总线AB,系 统 总 线 形 成,CPU,I/O设备,I/O接口,主存,系统总线BUS,外设,主机,8086 CPU最小模式系统典型配置

41、,BHE,reset,不难看出,除存储器、I/O芯片和基本时钟发生器(8284),系统还有用于地址的锁存器8282(或8283)、用于数据的的缓冲器8286(或8287)和74LS138译码器。下面我们分别来学习一下数据锁存器8282、数据缓冲器8286 、74LS138译码器:,计算机系统总线生成芯片简介,时钟发生器8284A 地址锁存器8282(三片) 数据缓冲器8286(两片) 控制信号,地址总线,数据总线,控制总线,a. 数据缓冲器8286,b. 数据锁存器8282,补充:三态门和D触发器,三态门和以D触发器形成的锁存器是微机接口电路中最常使用的两类逻辑电路 三态门:功率放大、导通开关

42、 器件共用总线时,一般使用三态电路: 需要使用总线的时候打开三态门; 不使用的时候关闭三态门,使之处于高阻 D触发器:信号保持,也可用作导通开关,三态,锁存,三态缓冲器(三态门),具有单向导通和三态的特性,T为低平时: 输出为高阻抗(三态) T为高电平时: 输出为输入的反相,双向三态缓冲器,具有双向导通和三态的特性,OE*0,导通 T1 AB T0 AB OE*1,不导通,D触发器,电平锁存: 高电平通过,低电平锁存 上升沿锁存: 通常用负脉冲触发锁存,负脉冲的上升沿,三态缓冲锁存器(三态锁存器),T,A,D Q C,B, 8086 的总线周期 最小模式系统中8086CPU的读写总线周期,四、

43、8086的时序和操作,总线时序,时序(Timing)是指信号高低电平(有效或无效)变化及相互间的时间顺序关系。 总线时序描述CPU引脚如何实现总线操作 CPU时序决定系统各部件间的同步和定时,什么是总线操作?,总线操作是指CPU通过总线对外的各种操作, 8086的总线操作主要有: 存储器读、I/O读操作 存储器写、I/O写操作 中断响应操作 总线请求及响应操作 CPU正在进行内部操作、并不进行实际对外操作的空闲状态Ti 描述总线操作的微处理器时序有三级: 指令周期 总线周期 时钟周期,1. 时钟周期 时钟周期指加到8086引脚CLK端二个脉冲上升沿间的宽度,它由计算机的主频决定。 T=1/f 例:设一个计算机的主频f为5MHz。则时 钟周期T为: T=1/5MHz = 0.2s = 200ns,8086的总线周期的概念,时钟频率一个T状态时间 5M 200ns(0.2s) 50M 20ns(0.02s)

温馨提示

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

评论

0/150

提交评论