《微型计算机原理与接口技术》第三版)习题答案

6.4 CPU与输入输出设备之间传送的信息由哪几类?相应的端口称为什么端口?

【解答】CPU与输入/输出设备交换的信息有3类:数据信息、状态信息和控制信息。数据信息相应的端口称为数据端口;状态信息相应的端口称为状态端口;控制信息相应的端口称为控制端口。

6.5 CPU和外设之间的数据传送方式有哪几种?无条件传送方式通常用在哪些场合?

【解答】CPU和外设之间的数据传送方式通常有四种:程序传送方式、中断传送方式、DMA传送方式和I/O处理机方式。

6.6 相对于条件传送方式,中断方式有什么优点?和DMA方式比较,中断传送方式又有什么不足之处?

【解答】中断传送方式下,当外设要求交换数据时,向CPU发中断请求,CPU在执行完当前指令后,即可中断当前任务的执行,并根据中断源转入相应的中断处理服务程序,实现对请求中断外设的管理。CPU与外设实现了并行工作,大大提高了工作效率。

DMA方式是在存储器与外设间开辟一条高速数据通道,使外设与内存之间直接交换数据,不需要CPU的干预。

6.7 采用无条件输入方式与外设接口时,接口电路应如何设计?

【解答】图6-1是无条件传送输入方式的例子。要将几个按键开关的状态输入CPU时,将这些开关连接到一个三态缓冲器,缓冲器的输出端接到CPU的数据总线,构成一个最简单的输入端口。CPU可随时执行输入输出指令,它使M/IO、RD和片选信号CS同时变成低电平,它们相与后开启缓冲器的三态门,使各开关的当前状态以二进制的形式出现在数据总线上,然后读入CPU,检查这个字节各位的内容,便能了解各开关的当前状态。在其它时刻,三态门呈高阻态,将开关和数据总线隔离。

+5VD0D11Y1 1A1... 74LS441G1Y2 1A2.......D72Y4 2A42G.开关M/IOCSRD

图6-1 简单的输入端口

6.8 说明查询式输入和输出接口电路的工作原理。

【解答】查询式输入接口电路如图6-2所示。工作原理为:当输入装置的数据准备好以后,发出一个选通信号。该信号一方面把数据送入锁存器,另一方面使D触发器置“1”,即置准备好信号Ready为真,并将此信号送至状态口的输入端。锁存器输出端连接数据口的输入端,数据口的输出端接系统数据总线。设状态端口的最高位D7连接Ready信号,CPU先读状态口,查Ready信号是否为高(准备好)。若为高就输入数据,同时使D触发器清0,使Ready信号为假;若未准备好,则CPU循环等待。

IORAEN系统地址总线数据输入装置地址译码锁存器选通信号 R QD+5V缓冲器(1)Ready三态缓冲器(8)数据去系统数据总线A0~A9状态信息地址译码AENIOR

图6-2 查询式输入接口电路

查询式输出接口电路如图6-3所示。其工作原理为:输出装置把CPU送来的数据输出以后,发一个ACK(Acknowledge)信号,使D触发器清零,即BUSY线变为“0”(BUSY= Empty)。CPU读窗口后

知道外设已“空”,于是就执行输出命令。在AEN,IOW和译码器输出信号共同作用下,数据锁存到锁存器中,同时使D触发器置“1”。它一方面通知外设数据已准备好,可以执行输出操作,另一方面在输出装置尚未完成输出以前,一直维持BUSY=1,阻止CPU输出新的数据。

数据口地址译码数据锁存器+5VQ D RIORAEN三态缓冲器(1)去系统数据总线状态信息“BUSY”IOWAEN系统数据总线状态口地址译码系统地址总线A0~A9输出装置“BUSY”

图6-3 查询式输出接口电路

6.9 简述在微机系统中,DMA控制器从外设提出请求到外设直接将数据传送到存储器的工作过程。 【解答】DMA方式要利用系统的数据总线、地址总线和控制总线来传送数据。原先,这些总线是由CPU管理的,但当外设需要利用DMA方式进行数据传送时,接口电路可以向CPU提出请求,要求CPU让出对总线的控制权,用一种称为DMA控制器的专用硬件接口电路来取代CPU,临时接管总线,控制外设和存储器之间直接进行高速的数据传送,而不要CPU进行干预。在DMA传送结束后,它能释放总线,把对总线的控制权又交给CPU。

6.10 I/O处理机传送方式的工作特点有哪些? 【解答】I/O处理机传送方式的工作特点:

(1)拥有自己的指令系统,可以独立执行自己的程序。 (2)支持DMA传送。

6.11 在一个微型计算机系统中,确定采用何种方式进行数据传送的依据是什么?

【解答】无条件传送方式主要用于对简单外设进行操作,或者外设的定时是固定的或已知的场合。

条件传送方式主要用于不能保证输入设备总是准备好了数据或者输出设备已经处在可以接收数据的状态。

中断控制方式主要用于需要提高CPU利用率和进行实时数据处理的情况。 DMA控制方式主要用于快速完成大批的数据交换任务。

在实际工作中,具体采用哪种方式要根据实际工作环境与需要结合各种方式的特点进行选择。

习题7

7.1 什么是中断?常见的中断源有哪几类?CPU响应中断的条件是什么?

【解答】中断是指CPU在正常执行程序时,由于内部/外部时间或程序的预先安排引起CPU暂时终止执行现行程序,转而去执行请求CPU为其服务的服务程序,待该服务程序执行完毕,又能自动返回到被中断的程序继续执行的过程。

常见的中断源有:一般的输入/输出设备请求中断;实时时钟请求中断;故障源;数据通道中断和软件中断。

CPU响应中断的条件:若为非屏蔽中断请求,则CPU执行完现行指令后,就立即响应中断。CPU若要响应可屏蔽中断请求,必须满足以下三个条件:① 无总线请求;② CPU允许中断;③ CPU执行完现行指令。

7.2 简述微机系统的中断处理过程。

【解答】(1)中断请求:外设需要进行中断处理时,向CPU提出中断请求。

(2)中断响应:CPU执行完现行指令后,就立即响应非屏蔽中断请求。可屏蔽中断请求,CPU若要响应必须满足三个条件。

(3)中断处理:保护现场、开中断、中断服务。

(4)中断返回:CPU执行IRET中断返回指令时,自动把断点地址从堆栈中弹出到CS和IP中,原来的标志寄存器内容弹回Flags,恢复到原来的断点继续执行程序。

7.3 软件中断和硬件中断有何特点?两者的主要区别是什么?

【解答】硬件中断由外部硬件产生,是由CPU外部中断请求信号触发的一种中断,分为非屏蔽中断NMI和可屏蔽中断INTR。

软件中断是CPU根据某条指令或者对标志寄存器的某个标志位的设置而产生的,也称为内部中断。通常有除法出错中断、INTO溢出中断、INT n中断、断点中断和单步中断等。

两者的主要区别:硬件中断由外部硬件产生,而软件中断与外部电路无关。

7.4 中断优先级的排队有哪些方法?采用软件优先级排队和硬件优先级排队各有什么特点? 【解答】软件优先级排队:各中断源的优先权由软件安排。优点是电路比较简单,可以直接修改软件查询顺序来修改中断优先权,不必更改硬件。缺点是当中断源个数较多时,有逐位检测查询到转入相应的中断服务程序所耗费的时间较长,中断响应速度慢,服务效率低。

硬件优先级排队:指利用专门的硬件电路或中断控制器对系统中各中断源的优先权进行安排。这种方法中断响应速度快,服务效率高,但需要专门的硬件电路。

7.5 8086的中断分哪两大类?各自有什么特点?中断矢量和中断矢量表的含义是什么?8086一共可处理多少级中断?

【解答】8086的中断分为外部中断和内部中断两种:外部中断由外部硬件产生,由CPU外部中断请求信号触发,分为非屏蔽中断NMI和可屏蔽中断INTR。内部中断是为了处理程序运行过程中发生的一些意外情况或调试程序而提供的中断。

8086的中断系统能够处理256个不同的中断,每一个中断安排一个编号,范围为0~255,称为中

断类型。每种中断类型对应的中断服务程序的入口地址称为中断矢量(或中断向量)。把系统中所有的中断矢量按中断类型从小到大的顺序放到存储器的特定区域,该区域称为中断矢量表。每个中断矢量在中断矢量表中占用4字节,CPU响应中断后通过将中断类型×4得到中断矢量在中断矢量表中的首地址。

8086CPU允许中断嵌套,具体能嵌套多少级中断,受堆栈深度的限制。

7.6 简述8086的中断类型,非屏蔽中断和可屏蔽中断有哪些不同之处?CPU通过什么响应条件来处理这两种不同的中断?

【解答】8086的中断系统能够处理256个不同的中断源,并为每一个中断安排一个编号,范围为0~255,称为中断类型。

硬件中断分为非屏蔽中断和可屏蔽中断,非屏蔽中断不受中断允许标志位IF的影响,在IF=0关中断的情况下,CPU也能在当前指令执行完毕后就响应NMI上的中断请求。可屏蔽中断:CPU将根据中断允许标志位IF的状态决定是否响应。如果IF=0,表示CPU关中断;如果IF=1,表示CPU开中断,CPU执行完现行指令后会转入中断响应周期。

7.7 已知8086系统中采用单片8259A来控制中断,中断类型码为20H,中断源请求线与8259A的IR4相连,计算中断向量表的入口地址。如果中断服务程序入口地址为2A310H,则对应该中断源的中断向量表的内容是什么?

【解答】偏移地址“中断类型×4”为中断向量在中断向量表中的首地址,即EA=20H×4=80H,因为在8086系统中规定存储空间00000H~003FFH(共1KB)用来存放中断向量表,则20H型中断的中断向量在中断向量表中的入口地址为00000H+80H=00080H。中断服务程序入口地址为2A310H,则对应该中断源的中断向量表的内容是任何能转换成物理地址2A310H的逻辑地址,设段地址为2000H,则偏移地址为A310H,则该中断源在中断向量表的内容是:(00080H)=2000H,(00081H)= A310H。

7.8 已知对应于中断类型码为18H的中断服务程序存放在0020H:6314H开始的内存区域中,求对应于18H类型码的中断向量存放位置和内容。

在编写程序时,为什么通常总要用STI和CLI中断指令来设置中断允许标志?8259A的中断屏蔽寄存器IMR和中断允许标志IF有什么区别?

【解答】偏移地址EA=18H×4=60H,18H中断向量在中断向量表中的入口地址为00000H+60H=00060H。中断服务程序存放在0020H:6314H开始的内存区域中,所以(00060H)=0020H,(00061H)= 6314H。

IF是8086微处理器内部标志寄存器Flags的中断允许标志位。若IF=1,则CPU可以接受中断请求;若IF=0,8086就不接受外部可屏蔽中断请求INTR引线上的请求信号。在编写程序时,用STI指令使中断允许标志位IF=1,目的是使CPU能够接受中断请求,或实现中断嵌套。而用CLI指令使中断允许标志位IF=0,则可以关中断,使CPU拒绝接受外部中断请求信号。

如果8259A的中断屏蔽寄存器IMR中的某位为1,就把这一位对应的中断请求输入信号IR屏蔽掉,无法被8259A处理,也无法向8086处理器产生INTR请求。

7.9 8259A对中断优先权的管理和对中断结束的管理有几种处理的方式?各自应用在什么场合? 【解答】8259A对中断优先权的管理可分为以下4种情况: (1)完全嵌套方式:是8259A最常用的工作方式。

(2)自动循环方式:一般用在系统中多个中断源优先级相同的场合。

(3)中断屏蔽方式:这种方式能在中断服务程序执行期间动态地改变系统的优先结构。 (4)特殊完全嵌套方式:一般用在8259A级联系统中。 8259A结束中断处理的方式有:

(1)一般EOI方式:只有在当前结束的中断总是尚未处理完的级别最高的中断时,才能使用这种结束方式。

联系客服:779662525#qq.com(#替换为@)