《CH06 输入输出控制.doc》由会员分享,可在线阅读,更多相关《CH06 输入输出控制.doc(5页珍藏版)》请在金锄头文库上搜索。
1、CH06 输入输出控制习题与思考题1CPU与外设之间的数据传输控制方式有哪几种?何谓程序控制方式?它有哪两种基本方式?请分别用流程图的形式描述其处理过程。(略)解答:CPU与外设之间的数据传输控制方式有三种:程序控制方式、中断方式、DMA方式。程序控制方式:程序方式就是指用程序来控制进行输入输出数据传输的方式。程序控制方式的两种基本方式:无条件程序控制方式,条件程序控制方式;流程图:2采用用查询方式将数据区DATA开始的100个字节数据在FCH端口输出,设状态端口地址为FFH,状态字的D0位为1时表示外设处于“忙”状态。试编写查询程序。解答:DATA SEGMENTBUFF DB 100 DU
2、P(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV BX,OFFSET BUFF;送缓冲区指针 MOV CX,100;送计数初值WAIT1:IN AL,0FFH;查询状态,若为1,则等待 TEST AL,01H JNZ WAIT1MOV AL, BX OUT 0FCH, AL ;输出一个数据INC BX LOOP WAIT1 MOV AH,4CH INT21H CODE ENDS END START3何谓中断优先级,它对于实时控制有什么意义?有哪几种控制中断优先级的方式?解答:当系统中有多
3、台设备(即多个中断源)同时提出中断请求时,就有先响应谁的问题,也就是如何确定优先级的问题。一般来讲,CPU总是先响应具有较高优先级的设备。解决优先级问题的方法一般有三种:软件查询法、简单硬件方式和专用硬件方式。4什么叫DMA传送方式? 其主要步骤是什么?试比较DMA传输、查询式传输及中断方式传输之间的优缺点和适用场合?解答:在DMA方式下,外部设备利用专门的接口电路直接和存储器进行高速数据传送,而不需经过CPU,数据传输的速度基本上取决于外设和存储器的速度,传输效率大大提高。DMA主要步骤:一般来说,完成一次DMA传输的主要步骤为:(1)当外设准备就绪时,它向DMA控制器发DMA请求,DMA控
4、制器接到此信号后,经过优先级排队(如需要的话),向CPU发DMA请求(送至CPU的HOLD引脚)。(2)CPU在完成当前总线周期后会立即对DMA请求做出响应。CPU的响应包括两个方面:一方面将控制总线、数据总线和地址总线置高阻,另一方面将有效的HLDA信号加到DMA控制器上,以此来通知DMA控制器,CPU已经放弃了对总线的控制权。(3)DMA控制器收到HLDA信号后,即取得了总线控制权。这时,它往地址总线上发送地址信号(指出本次数据传输的位置),同时,发出相应的读/写信号(决定是进行输入还是输出操作)。(4)每传送一个字节,DMA控制器会自动修改地址寄存器的内容,以指向下一个要传送的字节。同时
5、,修改字节计数器的内容,判别本次传输是否结束。(5)当字节计数器的值达到计数终点时,DMA过程结束。DMA控制器通过使HOLD信号失效,撤消对CPU的DMA请求。CPU收到此信号,一方面使HLDA无效,另一方面又重新开始控制总线,实现正常的运行。程序方式的特点:使用方便,系统开销不大,但速度较慢。适用于设备不多且实时响应要求不高的小系统。中断方式:CPU与外设之间可以并行工作,因此大提高CPU的工作效率,但一系列的保护(恢复)现场的工作,仍要花费不少CPU的时间。适用于设备较多且实时响应要求较高的系统。DMA方式:需要增加DMA控制器,适用于大量高速的数据传送。5什么是中断向量?中断向量表的功
6、能是什么?已知中断源的中断类型码分别是84H和FAH,它们所对应的中断向量分别为:2000H:1000H, 3000H:4000H, 这些中断向量应放在中断向量表的什么位置?如何存放? 编程完成中断向量的设置。解答:中断向量-中断服务程序的入口地址;中断向量表-存放中断向量的表,中断向量与中断类型码有对应关系。84H的位置:210H213H;FAH的位置:3E8H3EBH0000:210H 00 10 00 200000:3E8H 00 40 00 30PUSH DSMOV DX,2000HMOV DS,DXMOV DX,1000HMOV AL,84HMOV AH,25HINT 21H;MOV
7、 DX,3000HMOV DS,DXMOV DX,4000HMOV AL,0FAHMOV AH,25HINT 21HPOP DS6试结合8086/8088CPU可屏蔽中断的响应过程,说明向量式中断的基本处理步骤。解答:接口发中断请求信号(中断请求),若有中断优先级判别,进行判优;当前指令执行完后,CPU进行中断回答(中断响应);中断类型号N送CPU;当前的PSW、CS、IP推入堆栈;清除IF和TF;(4*N)作为IP,(4*N+2)作为CS;中断子程序执行(中断服务);开中断;IRET指令使IP、CS和PSW弹出堆栈;返回被中断的程序(中断返回)。7在中断响应总线周期中,第一个脉冲向外部电路说
8、明什么?第二个脉冲呢?解答:第一个脉冲-使IRR的锁存功能失效。(目的是防止此时再来中断导致中断响应的错误),到第二个时恢复有效。使ISR的相应位置位,表示已为该中断请求服务。使IRR相应位清0。第二个脉冲-送中断类型码,中断类型码由用户编程和中断请求引脚的编码共同决定,详见编程部分。如果8259A工作在中断自动结束方式,则此时清除ISR的相应位。8中断处理的主要步骤有哪些?试说明每一步的主要动作。9如果8259A按如下配置:不需要ICW4,单片,中断请求边沿触发,则ICW1的值为多少?。如要求产生的中断类型码在70H77H之间,则ICW2的值是多少? 解答:ICW1=1 010B;ICW2=
9、0111 0B10在上题中,假设8259A的端口地址为00H和01H,采用中断自动结束,固定优先级,完成对该8259A的初始化。解答:初始化程序如下。MOV AL,1 010B;OUT 00H,AL;ICW1MOV AL,0111 0B;OUT 01H,AL;ICW2(MOV AL,0000 011B;ICW4OUT 01H,AL;前提ICW1=1 011B)MOV AL,00HOUT 00H,AL;OCW211如果8259A用在80386DX系统中,采用一般的EOI,缓冲模式,主片,特殊全嵌套方式,则ICW4的值是什么?解答:ICW4=0001 1101B12如果OCW2等于67H,则允许何
10、种优先级策略?为什么?解答:67H=0110 0111B,固定优先级。13某系统中CPU为8088,外接一片8259A作为中断控制器,五个中断源分别从IR0IR4以脉冲方式引入系统,中断类型码分别为48H4CH,中断服务子程序入口的偏移地址分别为2500H,4080H,4C05H,5540H和6FFFH,段地址均是2000H,允许它们以非中断自动结束方式,固定优先级工作,请完成: 画出硬件连接图,写出此时8259A的端口地址; 编写8259A的初始化程序,(包括对中断向量表的设置)。解答:(图略);中断向量表的设置PUSH DSMOV DX,2000HMOV DS,DXMOV DX,2500H
11、MOV AX,2548HINT 21HMOV DX,4080HMOV AX,2549HINT 21HMOV DX,4C05HMOV AX,254AHINT 21HMOV DX,5540HMOV AX,254BHINT 21HMOV DX,6FFFHMOV AX,254CHINT 21HPOP DS;8259的初始化MOV AL,1 011B(13H) ;送ICW1,所有的位全取0 OUT 20H,AL MOV AL,48H ; 送ICW2,即中断类型码的高5位 OUT 21H,AL MOV AL,000 01B(01H) ;送ICW4,所有的位全取0OUT 21H,ALMOV AL,1110 0000B(E0H);送OCW1OUT 21H,AL14某系统中设置两片8259A级联使用,从片接至主片的IR2,同时,两片芯片的IR3上还分别连接了一个中断源,要求电平触发,普通EOI结束。编写全部的初始化程序。(端口地址可用自定) 解答:;8259的初始化(主片)MOV AL,1 101B(19H) ;送ICW1,所有的位全取0 OUT 20H,AL MOV AL,0000 0100B ; 送ICW3