CH06 输入输出控制

CH06 输入输出控制
CH06 输入输出控制

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可屏蔽中断的响应过程,说明向量式中断的基本处理步骤。

解答:(略)

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的初始化。

解答:(略)

11.如果8259A用在80386DX系统中,采用一般的EOI,缓冲模式,主片,特殊全嵌套方式,则ICW4的值是什么?

解答:ICW4=0001 1101B

12.如果OCW2等于67H,则允许何种优先级策略?为什么?

解答:67H=0110 0111B,固定优先级。

13.某系统中CPU为8088,外接一片8259A作为中断控制器,五个中断源分别从IR0~IR4以脉冲方式引入系统,中断类型码分别为48H~4CH,中断服务子程序入口的偏移地址分别为2500H,4080H,4C05H,5540H和6FFFH,段地址均是2000H,允许它们以非中断自动结束方式,固定优先级工作,请完成:

①画出硬件连接图,写出此时8259A的端口地址;

②编写8259A的初始化程序,(包括对中断向量表的设置)。

解答:①(图略)

②;中断向量表的设置

PUSH DS

MOV DX,2000H

MOV DS,DX

MOV DX,2500H

MOV AX,2548H

INT 21H

MOV DX,4080H

MOV AX,2549H

INT 21H

MOV DX,4C05H

MOV AX,254AH

INT 21H

MOV DX,5540H

MOV AX,254BH

INT 21H

MOV DX,6FFFH

MOV AX,254CH

INT 21H

POP DS

;8259的初始化

MOV AL,×××1 0×11B(13H);送ICW1,所有×的位全取0

OUT 20H,AL

MOV AL,48H ;送ICW2,即中断类型码的高5位

OUT 21H,AL

MOV AL,000×××01B(01H) ;送ICW4,所有×的位全取0

OUT 21H,AL

MOV AL,1110 0000B(E0H);送OCW1

OUT 21H,AL

14.某系统中设置两片8259A级联使用,从片接至主片的IR2,同时,两片芯片的IR3上还分别连接了一个中断源,要求电平触发,普通EOI结束。编写全部的初始化程序。(端口地址可用自定)

解答:

;8259的初始化(主片)

MOV AL,×××1 1×01B(19H);送ICW1,所有×的位全取0

OUT 20H,AL

MOV AL,40H ;送ICW2,即中断类型码的高5位

OUT 21H,AL

MOV AL,0000 0100B ;送ICW3

OUT 21H,AL

MOV AL,0001 ××01B ;送ICW4,所有×的位全取0

OUT 21H,AL

MOV AL,1111 0011B(F3H);送OCW1

OUT 21H,AL

;8259的初始化(从片略)

15.设8253的通道2工作在计数方式,外部事件从CLK2引入,通道2计满500个脉冲向CPU发出中断请求,CPU响应这一中断后重新写入计数值,开始计数,以后保持每2秒钟向CPU发出一个中断请求。假设条件如下:

①外部计数事件频率为1kHz;

②中断类型码为54H;

试完成硬件连接图并编写完成该任务的全部程序(包括芯片的初始化,中断向量的设置,中断服务子程序)。

解答:(略)

16.DMA控制器8237A的主要功能是什么?其单字节传输方式与数据块传输方式有什么不同?

解答:(略)

17.某8086系统中使用8237A完成从存储器到存储器的数据传送,已知源数据块首地址的偏移地址值为1000H,目标数据块首地址的偏移地址值为2050H,数据块长度为1K字节,地址增量修改。试编写初始化程序。(端口地址分别为00H~0FH)

解答:(略)

18.某系统中使用8237A通道0完成从存储器到外设端口的数据传送任务(数据块传输方式),若已知芯片的端口地址分别为EEE0H~EEEFH,要求通过通道0将存储器中偏移地址为1000H~10FFH的内容传送到显示器输出,DREQ、DACK均为低有效,固定优先级。试编写初始化程序。

解答:(略)

相关主题
相关文档
最新文档