CH06 输入输出控制 (1)

  • 格式:doc
  • 大小:131.50 KB
  • 文档页数:7

下载文档原格式

  / 16
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CH06 输入输出控制

习题与思考题

1.CPU与外设之间的数据传输控制方式有哪几种?何谓程序控制方式?它有哪两种基本方式?请分别用流程图的形式描述其处理过程。

解答:CPU与外设之间的数据传输控制方式有三种:程序控制方式、中断方式、DMA方式。程序控制方式:程序方式就是指用程序来控制进行输入输出数据传输的方式。

程序控制方式的两种基本方式:无条件程序控制方式,条件程序控制方式;

流程图:

2.采用用查询方式将数据区DATA开始的100个字节数据在FCH端口输出,设状态端口地址为FFH,状态字的D0位为1时表示外设处于“忙”状态。试编写查询程序。

解答:

DA TA SEGMENT

BUFF DB 100 DUP(?)

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV BX,OFFSET BUFF;送缓冲区指针

MOV CX,100;送计数初值

WAIT1:IN AL,0FFH;查询状态,若为1,则等待

TEST AL,01H

JNZ WAIT1

MOV AL, [BX]

OUT 0FCH, AL ;输出一个数据

INC BX

LOOP WAIT1

MOV AH,4CH

INT 21H

CODE ENDS

END START

3.何谓中断优先级,它对于实时控制有什么意义?有哪几种控制中断优先级的方式?

解答:当系统中有多台设备(即多个中断源)同时提出中断请求时,就有先响应谁的问题,也就是如何确定优先级的问题。一般来讲,CPU总是先响应具有较高优先级的设备。解决优先级问题的方法一般有三种:软件查询法、简单硬件方式和专用硬件方式。

4.什么叫DMA传送方式? 其主要步骤是什么?试比较DMA传输、查询式传输及中断方式传输之间的优缺点和适用场合?

解答:在DMA方式下,外部设备利用专门的接口电路直接和存储器进行高速数据传送,而不需经过CPU,数据传输的速度基本上取决于外设和存储器的速度,传输效率大大提高。DMA主要步骤:

一般来说,完成一次DMA传输的主要步骤为:

(1)当外设准备就绪时,它向DMA控制器发DMA请求,DMA控制器接到此信号后,经过优先级排队(如需要的话),向CPU发DMA请求(送至CPU的HOLD引脚)。

(2)CPU在完成当前总线周期后会立即对DMA请求做出响应。CPU的响应包括两个方面:一方面将控制总线、数据总线和地址总线置高阻,另一方面将有效的HLDA信号加到DMA控制器上,以此来通知DMA控制器,CPU已经放弃了对总线的控制权。

(3)DMA控制器收到HLDA信号后,即取得了总线控制权。这时,它往地址总线上发送地址信号(指出本次数据传输的位置),同时,发出相应的读/写信号(决定是进行输入还是输出操作)。

(4)每传送一个字节,DMA控制器会自动修改地址寄存器的内容,以指向下一个要传送的字节。同时,修改字节计数器的内容,判别本次传输是否结束。

(5)当字节计数器的值达到计数终点时,DMA过程结束。DMA控制器通过使HOLD 信号失效,撤消对CPU的DMA请求。CPU收到此信号,一方面使HLDA无效,另一方面又重新开始控制总线,实现正常的运行。

程序方式的特点:使用方便,系统开销不大,但速度较慢。适用于设备不多且实时响应要求不高的小系统。

中断方式:CPU与外设之间可以并行工作,因此大提高CPU的工作效率,但一系列的保护(恢复)现场的工作,仍要花费不少CPU的时间。适用于设备较多且实时响应要求较高的系统。

DMA方式:需要增加DMA控制器,适用于大量高速的数据传送。

5.什么是中断向量?中断向量表的功能是什么?已知中断源的中断类型码分别是84H和FAH,它们所对应的中断向量分别为:2000H:1000H, 3000H:4000H, 这些中断向量应放在中断向量表的什么位置?如何存放?编程完成中断向量的设置。

解答:中断向量----中断服务程序的入口地址;中断向量表----存放中断向量的表,中断向量与中断类型码有对应关系。

84H的位置:210H~213H;FAH的位置:3E8H~3EBH

0000:210H 00 10 00 20

0000:3E8H 00 40 00 30

PUSH DS

MOV DX,2000H

MOV DS,DX

MOV DX,1000H

MOV AL,84H

MOV AH,25H

INT 21H

MOV DX,3000H

MOV DS,DX

MOV DX,4000H

MOV AL,0FAH

MOV AH,25H

INT 21H

POP DS

6.试结合8086/8088CPU可屏蔽中断的响应过程,说明向量式中断的基本处理步骤。

解答:⑴接口发中断请求信号(中断请求),若有中断优先级判别,进行判优;⑵当前指令执行完后,CPU进行中断回答(中断响应);⑶中断类型号N送CPU;⑷当前的PSW、CS、IP推入堆栈;⑸清除IF和TF;⑹(4*N)作为IP,(4*N+2)作为CS;⑺中断子程序执行(中断服务);⑻开中断;⑼IRET指令使IP、CS和PSW弹出堆栈;⑽返回被中断的程序(中断返回)。

7.在中断响应总线周期中,第一个INTA脉冲向外部电路说明什么?第二个INTA脉冲呢?解答:第一个INTA脉冲----

·使IRR的锁存功能失效。(目的是防止此时再来中断导致中断响应的错误),到第二个INTA时恢复有效。

·使ISR的相应位置位,表示已为该中断请求服务。

·使IRR相应位清0。

第二个INTA脉冲----

·送中断类型码,中断类型码由用户编程和中断请求引脚的编码共同决定,详见编程部分。

·如果8259A工作在中断自动结束方式,则此时清除ISR的相应位。

8.中断处理的主要步骤有哪些?试说明每一步的主要动作。

9.如果8259A按如下配置:不需要ICW4,单片,中断请求边沿触发,则ICW1的值为多少?。如要求产生的中断类型码在70H~77H之间,则ICW2的值是多少?

解答:ICW1=×××1 0×10B;ICW2=0111 0×××B

10.在上题中,假设8259A的端口地址为00H和01H,采用中断自动结束,固定优先级,完成对该8259A的初始化。

解答:初始化程序如下。