微机原理 课后题 标准答案

器中。当外设接收数据后,发一个ACKB信号。一方面使OBFB无效,表示数据已经取走,当前输出缓冲区为空;另一方面,又使INTRB有效,申请中断,从而可以开始一个新的输出过程。 6.41 8255A的方式2用在什么场合?说明端口A工作于方式2时各

信号之间的时序关系。

答:1.方式2应用于分时工作的双向外设(输入输出设备)的连接。 2.端口A工作于方式2时各信号之间的时序关系如下:

① 对于方式2的输出过程:CPU响应中断,并往8255A输出一个数

WR一方面清除INTRA信号,据,并使WR有效。另一方面使OBFA有效。外设收到OBFA后,发出ACKA信号,使8255A的输出锁存器打开,从而数据便出现在8255A与外设之间的数据连线上。

ACKA信号也使OBFA信号无效,从而可开始下一个数据传输过程

(输入或输出)。

② 对于方式2的输入过程:当外设往8255A送来数据时,STBA也一起来到,使数据锁存到8255A的输入锁存器中,从而使IBFA

有效。在STBA结束时,便发出INTRA请求。在CPU响应中断进行读操作时,会使RD有效将数据从8255A读到CPU中,于是IBFA又变为无效,INTRA也被清除。

第七章 中断控制器、DMA控制器和计数器/定时器

7.1 8259A的初始化命令字和操作命令字有什么差别?它们分别对

应于编程结构中哪些内部寄存器?

答:1.8259A的初始化命令字是计算机系统启动时,由初始化程序设置的。初始化命令字一旦设定,一般在系统工作过程中就不再改变。操作命令字则是由应用程序设定的,它们用来对中断处理过程作动态控制,在一个系统运行过程中,操作命令字可以多次设置。

2.初始化命令字对应于编程结构的ICW1、ICW2、ICW3、ICW4共4个寄存器。操作命令字对应于编程结构的OCW1、OCW2、OCW3共3个寄存器。

7.2 8259A的中断屏蔽寄存器IMR和8086/8088CPU的中断允许标

志IF有什么差别?在中断响应过程中,它们怎样配合起来工作?

答:1.若IMR的某位为0则该位对应的引腿上的中断请求未加屏蔽,让它通过而进入中断优先级裁决器作裁决。若IMR的某位为1则屏蔽该位对应的引腿上的中断请求,不让它进入中断优先级裁决器。而8086/8088CPU的中断允许标志IF为1则允许INTR引腿进入的中断,IF为0则屏蔽INTR引腿进入的中断。与8259A的IMR位为0为1正好相反。 2.在中断响应过程中,IMR用于对外设向8259A发中断申请的允许/屏蔽,而CPU的IF用于对8259A由INT向CPU的INTR引腿发中断申请的允许/屏蔽。

7.3 8259A的全嵌套方式和特殊全嵌套方式有什么差别?各自用在

什么场合?

答:1.全嵌套工作方式,只有更高级的中断请求来到时,才会进行嵌套。而特殊

全嵌套方式则能被同级和高级的中断请求所嵌套。

2.全嵌套方式用于单片8259A的场合。特殊全嵌套方式用于多片8259A系统。

7.4 8259A的优先级循环方式和优先级特殊循环方式有什么差别?

答:在优先级特殊循环方式中,一开始的最低优先级是由编程确定的,从而最高优先级也由此而定。而优先级自动循环方式初始优先级队列为IR0~IR7。

7.5 8259A的特殊屏蔽方式和普通屏蔽方式相比,有什么不同之

处?特殊屏蔽方式一般用在什么场合?

答:1.在特殊屏蔽方式中用OCW1对屏蔽寄存器中某一位进行置位时,就会同时使ISR中的对应位自动清0。而普通屏蔽方式对OCW1的操作不影响ISR中各位的状态。

2.特殊屏蔽方式用于中断处理程序中,以开放比本身的优先级较低的中断请求。

7.6 8259A有几种结束中断处理的方式?各自应用在什么场合?除

了中断自动结束方式以外,其他情况下如果没有在中断处理程序中发中断结束命令,会出现什么问题?

答:1.8259A有三种结束中断处理的方式。

2.中断自动结束方式用于只有一片8259A,并且多个中断不会嵌套的情况。一般的中断结束方式用在全嵌套情况下及多片8259A的级联系统中。特殊中断结束方式用于循环优先级的8259A中。

3.不发中断结束命令会使8259A认为该中断未结束,从而挡住了低优先级的中断被响应,即中断控制功能不正常。

7.7 8259A引入中断请求的方式有哪几种?如果对8259A用查询方

式引入中断请求,那会有什么特点?中断查询方式用在什么场合?

答:1.引入中断请求的方式有:边沿触发方式、电平触发方式、中断查询方式三种。

2.中断查询方式的特点:

① 设备仍然通过往8259A发中断请求信号要求CPU服务,但8259A不使用INT信号向CPU发中断请求信号。

② CPU内部的中断允许触发器复位,所以禁止了外部对CPU的中断请求。

③ CPU要使用软件查询来确认中断源,从而实现对设备的中断服务。

3.中断查询方式一般用在多于64个中断的场合,也可以用在一个中断服务程序中的几个模块分别为几个中断设备服务的情况。

7.8 8259A的初始化命令字有哪些?它们各自有什么含义?哪几个

应写入奇地址?哪几个应写入偶地址?

答:1.8259A的初始化命令字有ICW1、ICW2、ICW3、ICW4共四个。 2.ICW1——芯片控制初始化命令字。ICW2——设置中断类型码的初始化命令字。ICW3——标志主片/从片的初始化命令字。ICW4——方式控制初始化命令字。 3.ICW2、ICW3、ICW4必须写入奇地址端口中。 4.ICW1必须写入偶地址端口中。

7.9 8259A的ICW2设置了中断类型码的哪几位?说明对8259A分

别设置ICW2为30H、38H、36H有什么差别?

答:1.8259A的ICW2设置了中断类型码的高5位。低3位中断类型码对应引入

中断的引腿号。

2.当设置ICW2为30H和36H时,完全相同。对应的8个中断类型码为30H~37H。而设置ICW2为38H时,对应的8个中断类型码为38H~3FH。

7.10 8259A通过ICW4可以给出哪些重要信息?什么情况下不需要

ICW4?什么情况下要设置ICW3?

答:1.当SFNM=1则为特殊的全嵌套方式;BUF=1则为缓冲方式;若为缓冲方式(BUF=1)则M/S=1表示本片为主片,M/S=0为从片;AEOI=1则设置为中断自动结束方式。当μPM=1表示8259A当前所在系统为8086/8088系统,反之μPM=0则为8080/8085系统。

2.当ICW1的D0为IC4=0时,不需要用ICW4。 3.当ICW1的D1为SNGL=0时,需要设置ICW3。

7.11 试按照如下要求对8259A设置初始化命令字:系统中有1片

8259A,中断请求信号用电平触发方式,下面要用ICW4,中断类型码为60H、61H……67H,用特殊全嵌套方式,不用缓冲方式,采用中断自动结束方式。8259A的端口地址为90H、92H。

答: MOV AL,1BH ;ICW1的命令字为00011011B=1BH OUT 90H,AL ;ICW1送偶地址端口 MOV AL,60H ;ICW2的命令字为60H OUT 92H,AL ;ICW2送奇地址端口 MOV AL,13H ;ICW4的命令字为00010011B=13H OUT 92H,AL ;ICW4送奇地址端口

7.12 怎样用8259A的屏蔽命令字来禁止IR3和IR5引腿上的请求?

又怎样撤销这一禁止命令?设8259A的端口地址为90H、92H。

答:1. CLI IN AL,92H ;(AL)←(IMR) OR AL,28H ;禁止IR3和IR5引腿上的中断请求 OUT 92H,AL ;OCW1送奇地址端口 STI 2. CLI IN AL,92H ;(AL)←(IMR) AND AL,0D7H ;允许IR3和IR5引腿上的中断请求 OUT 92H,AL ;OCW1送奇地址端口 STI

7.13 试用OCW2对8259A设置中断结束命令,并使8259A按优先

级自动循环方式工作。

答: MOV AL,0A0H ;OCW2的命令字为10100000B=A0H,满足上述要求 OUT PORT0,AL ;OCW2送偶地址端口

7.14 说明特殊屏蔽方式的使用方法。为什么要用“或”的方法来设

置屏蔽字?

答:1.某一中断服务程序先用OCW3命令字(ESMM=1,SMM=1)使8259A工作在特殊屏蔽方式,再用OCW1对IMR中本中断的对应位进行置位,就可以使系统除了对本级中断外,响应其他任何未被屏蔽的中断请求。中断处理结束时,用OCW1撤销前面设置的屏蔽位,并用OCW3撤销了特殊屏蔽方式。8259A又按

照原优先级方式工作。

2.用“或”的方法来设置屏蔽字可以不影响其他位的屏蔽状态。

7.15 80386系统中,8259A采用了级连方式,试说明在主从式中断系

统中8259A的主片和从片的连接关系。

答:从片的INT输出接主片的IR0~IR7的某一输入端;主片的CAS2~CAS0接从片的CAS2~CAS0;主片的INTA和从片的INTA连在一起接CPU的INTA输出端;主片和从片的WR、RD、D7~D0也都连在一起和CPU的WR、RD、DB7~DB0连接;主片和从片的A0连在一起接系统总线的AB1上;主片的SP/EN接数据驱动器的OE端,从片的SP/EN接地;主片和从片的CS各自接在地址译码器的一个输出端上。

7.16 试说明在DMA方式时内存往外设传输数据的过程。

答:当一个接口要由内存往其输出数据时,就往DMA控制器发一个DMA请求;DMA控制器接到请求以后,便往控制总线上发一个总线请求;若CPU允许让出总线便发出一个总线允许信号;DMA控制器接到此信号后,就将地址寄存器的内容送到地址总线上,同时往接口发一个DMA回答信号并发一个I/O写信号和一个内存读信号;内存接到读信号后将数据送到数据总线,I/O写信号将数据送到接口,并撤除DMA请求信号,于是DMA控制器的地址寄存器的内容加1或减1,计数器的值减1,而且撤除总线请求信号,就完成了对一个数据的DMA输出传输。

7.17 对一个DMA控制器的初始化工作包括哪些内容?

答:① 将数据传输缓冲区的起始地址或者结束地址送到地址寄存器中; ② 将传输的字节数或字数送到计数器中。 ③ 通过模式寄存器设置工作方式等。

7.18 DMA控制器8237A什么时候作为主模块工作?什么时候作为

从模块工作?在这两种情况下,各控制信号处于什么状态,试作说明。

答:1.在外设向8237A发DMA请求,8237A向CPU发总线请求得到CPU总线允许时,获得了总线控制权就作为总线主模块工作。

2.当CPU把数据送到8237A的寄存器或者从8237A的寄存器取出时,8237A就象I/O接口一样作为总线的从模块工作。

3.主模块工作时的控制信号:DREQx有效,HRQ高,HLDA高,DACKx有效,AEN高,IOR、MEMW或IOW、MEMR有效,16位地址送地址总线。从模块工作时的控制信号: CS和HRQ为低,A3~A0为某一确定值,IOR或IOW有效。

7.19 8237A有哪几种工作模式?各自用在什么场合?

答:1.8237A有4种工作模式:单字节传输模式、块传输模式、请求传输模式、级联传输模式。

2.单字节传输模式用于单个字节的DMA输入/输出;块传输模式用于连续进行多个字节的传输;请求传输模式用于受接口控制的连续字节传输;级联传输模式用于多片主从式DMA系统中的主片的工作模式。

7.20 什么叫DMA控制器的自动预置功能?这种功能是用得很普遍

的,举一个例子说明它的使用场合。

答:1.自动预置功能就是DMA控制器某通道在当前字节计数器的计数值到达0时,当前地址寄存器和当前字节计数器会从基本地址寄存器和基本字节计数器中

联系客服:779662525#qq.com(#替换为@)