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

发布时间 : 星期二 文章《微型计算机原理与接口技术》(第三版)习题答案更新完毕开始阅读5190141bfad6195f312ba66b

25

【解答】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外部中断请求信号触发的一种中断,分为非屏蔽中

26

断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类型码的中断向量存放位置和内容。

27

在编写程序时,为什么通常总要用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方式:只有在当前结束的中断总是尚未处理完的级别最高的中断时,才能使用这种结束方式。

(2)指定EOI方式:适合于在任何情况下使用。

(3)自动EOI方式:只有在一些以预定速率发生中断,且不会发生同级中断互相打断或低级中断打断高级中断的情况下,才使用自动EOI方式。

7.10 8259A仅有两个端口地址,它们如何识别ICW命令和OCW命令? 【解答】

ICW1特征是A0=0,并且控制字的D4=1。 ICW2特征是A0=1。

当ICW1中的SNGL位为0时工作于级联方式,此时需要写ICW3。 ICW4是在ICW1的IC4=1时才使用。 OCW1特征是A0=1。

OCW2特征是A0=0且D4D3=00。 OCW3特征是A0=0且D4D3=01。

7.11 在两片8259A级联的中断系统中,主片的IR6接从片的中断请求输出,请写出初始化主片、从片时,相应的ICW3的格式。

【解答】主片ICW3的格式为:

A0 D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 0 从片ICW3的格式为:

0 0 0 0 0 28

A0 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 0 1 1 0 7.12 已知8086系统采用单片8259A,中断请求信号使用电平触发方式,完全嵌套中断优先级,数据总线无缓冲,采用自动中断结束方式,中断类型码为20H~27H,8259A的端口地址为B0H和B1H,试编程对8259A设定初始化命令字。

【解答】对8259A的初始化编程如下:

MOV AL, 1BH ; 写入ICW1,设定电平触发,单片 OUT B0H,AL

MOV AL, 20H ; 写入ICW2,设定IRQ0的中断类型码为20H OUT B1H, AL

MOV AL, 07H ;写入ICW4,设定完全嵌套方式,普通EOI方式 OUT B1H, AL

习题8

8.1 8237A DMA控制器有哪两种工作状态?其工作特点如何?

【解答】一种是系统总线的主控者,这是它工作的主方式。在取代CPU控制DMA传送时,它应提供存储器的地址和必要的读写控制信号,数据是在I/O设备与存储器之间通过数据总线直接传递;另一种是在成为主控者之前,必须由CPU对它编程以确定通道的选择、数据传送的模式、存储器区域首地址、传送总字节数等。在DMA传送之后,也有可能由CPU读取DMA控制器的状态。这时8237A如同一般I/O端口设备一样,是系统总线的从设备,这是8237A工作的从方式。

8.2 8237A进行DMA数据传送时有哪几种传送方式?

【解答】单字节传送方式、数据块传送方式、请求传送方式、级联方式。

8.3 若8237A的端口基地址为000H,要求通道0和通道1工作在单字节读传输方式,地址减1变化,无自动预置功能。通道2和通道3工作在数据块传输方式,地址加1变化,有自动预置功能。8237A的DACK为高电平有效,DREQ为低电平有效,用固定优先级方式启动8237A工作,试编写8237A的初始化程序。

【解答】初始化程序如下:

DMA EQU 000H ;8237A的基地址为00H

;输出主清除命令

OUT DMA+0DH,AL ;发总清命令

;写入方式字:单字节读传输,地址减1变化,无自动预置功能,选择通道0 MOV AL,01101000B ;方式字 OUT DMA+0BH,AL ;写入方式字

;写入方式字:单字节读传输,地址减1变化,无自动预置功能,选择通道1 MOV AL,01101001B ;方式字 OUT DMA+0BH,AL ;写入方式字

;写入方式字:数据块传输方式,地址加1变化,有自动预置功能,选择通道2 MOV AL,10010010B ;方式字 OUT DMA+0BH,AL ;写入方式字

;写入方式字:数据块传输方式,地址加1变化,有自动预置功能,选择通道3 MOV AL,10010010B ;方式字 OUT DMA+0BH,AL ;写入方式字