CH06 输入输出控制 (1)
- 格式:doc
- 大小:131.50 KB
- 文档页数:7
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的初始化。
解答:初始化程序如下。