1. 8086/8088为什么采用地址/数据引线复用技术?
考虑到芯片成本,8086/8088采用40条引线的封装结构。40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从逻辑角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。
2. 8086与8088的主要区别是什么?
8086有16条数据信号引线,8088只有8条;8086片内指令预取缓冲器深度为6字节,8088只有4字节。
3.怎样确定8086的最大或最小工作模式?最大、最小模式产生控制信号的方法有何不同?
引线MN/MX#的逻辑状态决定8086的工作模式,MN/MX#引线接高电平,8086被设定为最小模式,MN/MX#引线接低电平,8086被设定为最大模式。
最小模式下的控制信号由相关引线直接提供;最大模式下控制信号由8288专用芯片译码后提供,8288的输入为8086的S2#~S0#三条状态信号引线提供。
4. 8086被复位以后,有关寄存器的状态是什么?微处理器从何处开始执行程序?
标志寄存器、IP、DS、SS、ES和指令队列置0,CS置全1。处理器从FFFFOH存储单元取指令并开始执行。
5. 8086基本总线周期是如何组成的?各状态中完成什么基本操作?
基本总线周期由4个时钟(CLK)周期组成,按时间顺序定义为T1、T2、T3、T4。在T1期间8086发出访问目的地的地址信号和地址锁存选通信号ALE;T2期间发出读写命令信号RD#、WR#及其它相关信号;T3期间完成数据的访问;T4结束该总线周期。
6.结合8086最小模式下总线操作时序图,说明ALE、M/IO#、DT/R#、RD#、READY信号的功能。
ALE为外部地址锁存器的选通脉冲,在T1期间输出;M/IO#确定总线操作的对象是存储器还是I/O接口电路,在T1输出;DT/R#为数据总线缓冲器的方向控制信号,在T1输出;RD#为读命令信号;在T2输出;READY信号为存储器或I/O接口“准备好”信号,在T3期间给出,否则8086要在T3与T4间插入Tw等待状态。
7.什么是总线请求?8086在最小工作模式下,有关总线请求的信号引脚是什么?
系统中若存在多个可控制总线的主模块时,其中之一若要使用总线进行数据传输时,需向系统请求总线的控制权,这就是一个总线请求的过程。8086在最小工作模式下有关总线请求的信号引脚是HOLD与HLDA。
8. 简述在最小工作模式下,8086如何响应一个总线请求?
外部总线主控模块经HOLD引线向8086发出总线请求信号;8086在每个时钟周期的上升沿采样HOLD引线;若发现HOLD=1则在当前总线周期结束时(T4结束)发出总线请求的响应信号HLDA;8086使地址、数据及控制总线进入高阻状态,让出总线控制权,完成响应过程。
9. 微型计算机采用总线结构有什么优点?
微型计算机的总线结构是一个独特的结构。有了总线结构以后系统中各功能部件之间的相互关系变为了各功能部件面向总线的单一关系。一个部件只要符合总路线标准,就可以连接到采用这种总路线标准的系统中,使系统功能得到扩展。
10.数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一
套总线或者合用部分总线,那么要靠什么来区分地址和数据?
从结构上看数据总线是双向的,而地址总线从结构上看却是单向的。如果一个系统的数据和地址合用一套总线或者合用部分总线,一般可靠时钟周期来区分地址和数据,可在总线周期的若干个时钟周期,约定某周期传输地址、在另一周期传输数据。
11. 控制总线传输的信号大致有几种?
控制总线用来传输控制信号:其中包括CPU送往存储器和输入/输出接口电路的控制信号,如读信号、写信号和中断响应信号等;还包括其它部件送到CPU的信号,比如,时钟信号、中断请求和准备就绪信号。
12. 什么是微处理机?与一般计算机结构相比它有什么特点?
微处理机是一种广泛采用集成度相当高的器件和部件、体积小、重量轻的电子计算机。微处理机与一般计算机结构相比它体积小、重量轻,价格低廉,可靠性高、结构灵活,应用面广。
13. 微型计算机系统由哪几个部分组成?请举一个你见过的微机系统应用的例子。
微型计算机系统由微型计算机、系统软件和外设几个部分组成。图书馆的图书检索系统是用微型机配上数据库管理软件及相关外设组成的微型计算机系统。
14. 8086CPU在内部结构上的主要特点是什么?
8086CPU在内部结构上从结构上可分为:总线接口部件BIU和执行部件EU。它是16位微处理器有16根数据线20根地址线,内部寄存器、内部运算部件以及内部操作都是按16位设计的。
15. 8086CPU的起始取指的地址是多少?怎样形成这个地址?这个地址对于系统设计有什么影响?
8086CPU的起始取指的地址是FFFF0H.这个地址的形成过程为CPU被启动时指令指针寄存器被清除,而代码段寄存器CS被设为FFFFH.地址FFFF0H单元开始的几个单元中放一条无条件转移指令,转到一特殊的程序中.这个程序用来实现系统初使化、引导监控程序或者引导操作系统等功能,这样的程序叫引导和装配程序.
16. 8086CPU的形成三大总线时,为什么要对部分地址线进行锁存?用什么信号控制锁存?
为了确保CPU对存储器和I/O端口的正常读/写操作,需要求地址和数据同时出现在地址总线和数据总线上。而在8086CPU中有AD0--AD15部分总线是地址/数据复用的,因此需在总线周期的前一部分传送出地址信息,并存于锁存器中,而用后一部分周期传送数据。8086CPU中是通过CPU送出的ALE高电平信号来控制锁存的。
17. BHE信号的作用是什么?试说明当起始地址为奇地址、偶地址、一次读写一个字节和一个字时,BHE和A0的状态。
BHE信号的作用是高8位允许引脚。若BHE为0则表示对一个字进行操作,即高8位有效,若BHE为1则表示对一个字节进行操作,即高8位无效。当起始地址为奇地址时,一次读写一个字节时,BHE为1,A0状态为1;当起始地址为偶地址时,一次读写一个字节时,BHE为1,A0状态为0;当起始地址为奇地址时,一次读写一个字时,BHE为0,A0状态为1;当起始地址为偶地址时,一次读写一个字时,BHE为0,A0状态为0。
18. 根据8086CPU的存储器读写时序图,请说明:
(1)地址信号应在哪些时间内有效?
(2)读、写动作发生在什么时间内?
(3)为什么读与写数据的有效时间长短不一样?
(4)什么情况下才要插入Tw周期?它能否加在T1,T2之间?
地址信号只在T1状态时有效,并被锁存起来。读动作发生在T3、T4状态,而写动作发生在T2、T3、T4状态。读与写数据的有效时间长短不一样是因为CPU的速度与外设的速度不相匹配所造成的。当CPU没有在T3状态的一开始就检测到READY信号时,需在T3和T4之间插入等待状态TW。它不能加在T1和T2之间。
19. 什么是最小模式和最大模式?它们在用途上有什么不同?
最小模式就是系统中只有8086或者8088一个处理器,最大模式中系统中总包含两个或多个处理器,其中一个为8086或者8088做主处理器,其它处理器为协处理器,它们协助主处理器工作。最小模式用于数值运算较少且I/O处理较少的简单8086/8088系统中,而最大模式由于有协处理器协助主处理器工作因而适用于数值运算较复杂且I/O处理较频繁的中大规模的8086/8088系统中。
20. 什么是接口?硬接口和软接口的含义各是什么?
接口也称端口是CPU与外设交互通信的中间接点,一般由若干组存储单元组成,用于暂存数据发实现CPU与外设之间的通信,并有缓冲的功能用来平衡CPU与外设的不匹配。硬接口是用硬件来实现接口的功能,而软接口是通过程序设计来实现接口的功能的。
21. 有几类不同的接口?它们各有什么特点?
接口按功能可分为两类:一类是使微处理器正常工作需要的辅助电路,通过这些辅助电路,使处理器得到所需要的时钟信号或者接受外部的多个中断请求等;另一类是输入/输出接口电路,利用这些接口电路,微处理器可以接受外部设备送来的信息或将信息发送到外部设备。
22. 接口技术应解决一些什么问题?
接口技术应解决的问题有:寻址功能、输入/输出功能、数据转换功能、联络功能、中断管理功能、复位功能、可编程功能、错误检测功能。
23. 总线接口部件有哪些功能?请逐一说明。
总线接口部件的功能是负责与存储器、I/O端口传送数据。具体讲,总线接口部件要从内存指令队列;CPU执行指令时,总线接口部件要配合执行部件从指定的内存单元或者外设端口中取数据,将数据传送给执行部件,或者把执行部件的操作结果传送到指定的内存单元或外设端口中。
24. 8086的总线接口部件有那几部分组成?
8086的总线接口部件有以下4部分组成:
(1)4个段地址寄存器,即:CS——16位的代码段寄存器,DS——16位的数据段寄存器,ES——16位的扩展段寄存器,SS——16位的堆栈段寄存器;(2)16位的指令指针寄存器IP;(3)20位的地址加法器;(4)6字节的指令队列。
25.段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?
此时,指令的物理地址为21F00H;这一物理地址的CS值和IP值不是唯一的,例如:CS=2100H,IP=0F00H。
26. 8086的执行部件有什么功能?由那几部分组成?
执行部件的功能是负责指令的执行。8086的执行部件有:(1)4个通用寄存器:AX,BX,CX,DX;(2)4个专用寄存器,即基数指针寄存器BP,堆栈指针寄存器SP,原变址寄存器SI,目的变址寄存器DI;(3)标志寄存器;(4)算术逻辑单元。
27. 状态标志和控制标志又何不同?程序中是怎样利用这两类标志的? 8086的状态标志和控制标志分别有哪些?
状态标志表示前面的操作执行后,算术逻辑部件处在怎样一种状态,这种状态会像某种先决条件一样影响后面的操作。状态标志有6个,即SF、ZF、PF、CF、AF和OF。控制标志是人为设置的,指令系统中有专门的指令用于控制标志的设置和清除每个控制标志都对某一种特定的功能起控制作用。控制标志有3个,即DF、IF、TF。程序中用专门的指令对它们进行操作。
28. 8086/8088和传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点?
传统的计算机在执行指令时,总是相继地进行提取指令和执行指令的动作,也就是说,指令的提取和执行是串行进行的。在8086/8088中,指令的提取和执行是分别有由总线接口部件完成的,总线控制逻辑和指令执行逻辑之间即互相独立又互相配合;使8086/8088可以在执行指令的同时进行提取指令的操作。8086/8088 CPU中,总线接口部件和执行部件的这种并行工作方式,有力地提高了工作效率。
29.总线周期的含义是什么?8086/8088的基本总线周期由几个时钟组成?如果一个CPU的时钟频率为24MHz,那么,它的一个时钟周期为多少?一个基本总线周期为多少?如主频为15MHz呢?
总线周期的含义是计算机执行一条访问内存或端口的机器指令的时间;8086/8088的基本总线周期由4个时钟周期组成;如果CPU的时钟频率为24MHz,那么它的一个时钟周期为41.5ns,一个基本总线周期为166ns;如果CPU的时钟频率为15MHz,那么它的一个时钟周期为66.67ns,一个基本总线周期为266.67ns。(遗失题由李建完成)
30.在总线周期的T1、T2、T3、T4状态,CPU分别执行什么动作?什么情况下需要插入等待状态Tw?Tw在哪儿插入?怎样插入?
在总线周期的T1、T2、T3、T4状态,CPU分别执行的动作是:
(1) 在T1状态,CPU往多路复用总线上发出地址信息,以指出要寻址的存储单元或处设端口的地址;
(2) 在T2状态,CPU从总线上撤消地址,而使总线的低16位浮置成高阻状态,为传输数据作准备。总线的最高4位(A19-A16)用来输出本总线周期状态信息,这些状态信息用来表示中断允许状态、当前正在使用的段寄存器名等;
(3) 在T3状态,多路总线的高位继续提供状态信息,而多路总线的低16位(8088则为低8位)上出现由CPU的数据或者CPU从存储器或者CPU从存储器或端口读入或端口读入的数据;
(4) 在T4状态,总线结束。在有些情况下,外设或存储器速度较慢,不能及时地配合CPU传送数据。这时,外设或存储器会通过“Ready”信号在T3状态启动前向CPU发一个“数据未准备好”信号,于是CPU会在T3之后插入1个或多个附加的时钟周期Tw
31. 从引腿信号上看,8086和8088有什么不同?
(1) 由于8088只能传输8位数据,所以8088只有8个地址引腿兼为数据引腿;而8086是按16位传输数据的,所以有16个地址/数据复用引腿;(2) 另外8086和8088的控制线引腿定义中第28和34腿也不一样,在最小模式时,8088和8086的第28腿的控制信号相反,而8086的第34腿为BHE/S7,BHE用来区分是传送字节、还是字,8088的第34腿为SS0,用来指出状态信息,不能复用。
32. CPU启动时,有那些特征?如何寻找8086/8088系统的启动程序?
在8088/8086系统中,CPU被启动后,处理器的标志寄存器、指令指针寄存器IP、段寄存器DS、SS、ES和指令队列都被清零,但是代码段寄存器CS被设置为FFFFH。因为IP=0000,而CS=FFFFH,所以,8088/8086将从地址FFFF0H开始执行指令。通常,在安排内存区域时,将高地址区作为只读存储区,而且在FFFF0H单元开始的几个单元中入一条无条件转移指令,转到一个特定的程序中,这个程序往往实现系统初始化、引导监控程序或者引导操作系统等功能,这样的程序叫做引导和装配程序。
33. CPU在8086的微机系统中,为什么常用AD0作为低8位数据的选通信号?
在8086系统中,常将AD0作为低8位数据的选通信号,因为每当CPU和偶地址单元或偶地址端口交换数据时, 在T1状态,AD0引腿传送的地址信号必定为低电平,在其他状态, 则用来传送数据.而CPU的传输特性决定了只要是和偶地址或偶地址端口交换数据,那么,CPU必定通过总线低8位(AD7-AD0)传输数据.可见,如果在总线周期的T1状态,AD0为低电平,实际上就指示了在这一总线周期中,CPU将用总线低8位和偶地址单元或偶地址端口交换数据。
34. 8086和8088在最大模式和最小模式时,引腿信号分别有什么不同?
[答案] 引腿 名称 功能
最小模式 24 INTA 用来对外的中断请求作出响应.
25 ALE 作为锁存信号,对地址进行锁存
26 DEN 为收发器提供一个信号,说明CPU当前准备发送或接收数据
27 DT/R 用来控制8286/8287的数据传送方向
28 M/IO 区分CPU进行存储器访问还是输入/输出访问的控制信号
29 WR 作为写信号输出端,低电平有效
30 HLDA 作为CPU响应其他部件发出总线请求的输出端
31 HOLD 作为其他部件向CPU发出总线请求信号的输入端
最大模式 24,25 QS1,QS0 这两个信号组合起来提供了前一个时钟周期中指令队列的状态
26,27,28 S2,S1,S0 这信号组合起来可以指出当前总线周期所进行数据传输过程的类型
29 LOCK 总线封锁信号输出端,有效时系统中其他总线不能占有总线
30,31 RQ/GT1,RQ/GT0供CPU以外的2个处理器用来发出使用总线的请求信号和接收CPU对总线请求回答的信号。
35. 8086和8088是怎样解决地址线和数据线的复用问题的? ALE信号何时处于有效电平?
8086/8088是通过利用ALE信号的是否有效来解决两线的复用问题的。ALE作为最小模式的地址锁存允许信号输出端,在任何总线周期的T1状态,ALE输出有效电平,以表示当前在地址/数据复用总线上输出的是地址信息。
36. BHE信号和A0信号是怎样的组合解决存储器和外设端口的读/写操作的?这种组合决定了8086系统中存储器偶地址体及奇地址体之间应该用什么信号区分?怎样区分?
这种组合决定了8086系统中存储器偶地址和奇地址之间用AD。若在总线周期的T1状态为低电平,则在这一周期中,CPU将用总线低8位和偶地址单元或偶地址端口交换数据。代码组合和对应的操作:0 0 从偶地址开始读一个字。 AD15~ AD0;1 0 从偶地址单元或端口读/写一个字字节 AD7~AD0;0 1 从奇地址单元或端口读/写一个字节 AD15~AD0;0 1 从奇地址开始读/写一个字 AD15~AD8;1 0 (在第一个总线周期将低8位数字送到AD15~AD8,在第二个总线周期,将高8位数字送AD7~AD0。
37. RESET信号来到后,CPU的状态有那些特点?
RESET信号来到后,CPU便结束当前操作,并对处理器标志寄存器,IP,DS,SS,ES 及指令队列清零,而将CS设置为FFFFH,当复位信号变为低电平时,CPU从FFFF0H开始执行程序。
38.在中断响应过程中,8086往8259A发的两个INTA信号分别起什么作用?
在中断响应过程中,CPU向8259A的INTR引腿发二个负脉冲,作用:第一个负脉冲通知CPU有中断请求,要送中断类型;第二个负脉冲传输中的类型。
39. 8088系统在最小模式时应该怎样配置?
8088在最小模式下的典型配置。图见课本。
1, 有一片8284A,作这时钟发生器。
2, 有3片8282或74LL373,用来作为地址锁存器。
3, 当系统中所连的存储器和外设较多时,需要增加数据总线的驱动能力,这时,要用2片8286/8287作为总线收发器。
40. 8086在最大模式下应当怎样配置?最大模式时为什么一定要用总线控制器?总线控制器的输入信号是什么?输出信号是什么?
8086在最大模式下的配置如下图所示:
最大模式时,用总线控制器的原因在于:在最大模式系统中,一般包含2个或多个处理器,这样就要解决主处理器和协处理器之间的协调要作问题和对总线的共享控制问题,为此,要从软件和硬件两方面去寻求解决措施。8288总线控制器就是出于这种考虑而加在最大模式系统中的。总线控制器的输入信号是:CLK、S0、S1、S2。其输出信号是:DT/R、DEN、INTA、MRDC、MWTC、IORC、IOWC、ALE
41. 在编写程序时,为什么通常总要用开放中断指令来设置中断允许标志?
在复位时,由于标志寄存器被清零,即所有标志位都被清除了,这样,所有从INTR引腿进入的可屏蔽中断都得不到允许,因而,在编程时,通常总要用开放中断指令来设置中断允许标志。
42. T1状态下,数据/地址线上是什么信息?用哪个信号将此信息锁存起来?数据信息是什么时候给出的?用时序表示出来。
在T1状态下,数据/地址线上是地址信号。在T1状态从ALE引腿上输出一个正脉冲作为地址锁存信号。数据信息是T3状态时给出的。其时序如下所示:
43.画出8086最小模式的读周期时序。
44.系统中有多个总线模块时,在最大模式和最小模式下分别用什么方式来传递总线控制权?
在最小模式下总线控制权是通过HOLD引脚来实现的,当系统中CPU之外的另一个模块要求占用总线时,通过此引腿向CPU发一个高电平的请求信号。这时,如果CPU允许让出总线,就在当前总线周期完成时,于T4状态从HOLD引腿发出一个回答信号,对刚才的HOLD 请求作出响应。同时,CPU使地址/数据总线和控制状态线处于浮空状态。总线请求部件收到HLDA信号后,就获得了总线控制权。在最小模式下总线控制权是通过LOCKT RQ/GT1,RQ/GT0引脚来实现的,首先,总线模块通过RQ/GT1向CPU发出一个请求信号,并通过RQ/GT0来接受CPU的响应,如果LOCK为低电平,则总线请求部件就获得了总线控制权。
45. 概述怎样用软件方法和硬件方法来进行定时。
用软件方法定时,一般都是根据所需要的时间常数来设计一个延迟子程序,延迟子程序中包含一定的指令,设计者要对这些指令的执行时间进行严密的计算或者精确的测试,以便确定延迟时间的否符合要求。用硬件方法定时,就要用到计数器/定时器。在简单的软件控制下,产生准确的时间延迟,这种方法的主要思想是根据需要的定时时间,用指令对计数器/定时器设置定时常数,并用指令启动计数器/定时器,于是计数器/定时器开始计数,计到确定值时,便自动产生一个定时输出,在计数器/定时器开始工作以后,CPU就不必去管它,而可以去做别的工作。
46. 8253计数器/定时器中,时钟信号CLK和门脉冲信号GATE分别起什么作用?
时钟信号CLK决定计数速率,门脉冲信号GATE是时钟的控制信号。(以上6题由徐芳解答)
47.设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。试编写程序片段,读出计数器2的内容,并把读出的数据装入寄存器AX。
MOV AL,80H
OUT 200H,AL
IN AL,203H
MOV BL,AL
IN AL,203H,
MOV BH,AL
MOV AX,BX
48.设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。输入时钟为2MHz,让1号通道周期性的发出脉冲,其脉冲周期为1ms,试编写初化程序段。
使用计数器1,先读低8位,后读高8位,设为方式3,二进制计数,控制字是76H。设控制口的地址是200H,计数器0的地址是202H。程序段如下:
MOV DX,200H
MOV AL,76H
OUT DX,,AL
MOV DX,202H
MOV AX,2000
OUT DX,AL
MOV AL,AH
OUT DX,AL
49. 设8253计数器的时钟输入频率为1.91MHz,为产生25KHz的方波输出信号,应向计数器装入的计数初值为多少?
76.4
应向计数器装入的初值是76。
50.设8253的计数器0,工作在方式1,计数初值为2050H;计数器1,工作在方式2,计数初值为3000H;计数器2,工作在方式3,计数初值为1000H。如果三个计数器的GATE都接高电平,三个计数器的CLK都接2MHz时钟信号,试画出OUT0、OUT1、OUT2的输出波形。
计数器0工作在方式1,即可编程的单脉冲方式。这种方式下,计数的启动必须由外部门控脉冲GATE控制。因为GATE接了高电平,当方式控制字写入后OUT0变高,计数器无法启动,所以OUT0输出高电平。
计数器1工作在方式2,即分频器的方式。输出波形的频率f=666.7HZ,其周期为1.5ms,输出负脉冲的宽度等于CLK的周期为0.5μs。
计数器2工作在方式3,即方波发生器的方式。输出频率f= 2000Hz的对称方波。