的端口地址为90H、92H。 答:1.
CLI IN OR OUT STI
2.
CLI IN AND OUT STI
7.13 试用OCW2对8259A设置中断结束命令,并使8259A按优先级自动循环方式工作。
答:
MOV OUT
AL,0A0H ;OCW2的命令字为10100000B=A0H,满足上述要求
PORT0,AL ;OCW2送偶地址端口 AL,92H
;(AL)←(IMR)
;允许IR3和IR5引腿上的中断请求
;OCW1送奇地址端口
AL,92H AL,28H
;(AL)←(IMR)
;禁止IR3和IR5引腿上的中断请求
;OCW1送奇地址端口
92H,AL
AL,0D7H
92H,AL
7.14 用流程图来表示特殊全嵌套方式的工作过程。设主程序运行时先在IR2端有请求,接着IR2端又有
请求,而此时前一个IR2还未结束,后来IR3端有请求,再后来IR1端有请求。 答:流程图如下页所示:
7.15 说明特殊屏蔽方式的使用方法。为什么要用“或”的方法来设置屏蔽字?
答:1.某一中断服务程序先用OCW3命令字(ESMM=1,SMM=1)使8259A工作在特殊屏蔽方式,再
用OCW1对IMR中本中断的对应位进行置位,就可以使系统除了对本级中断外,响应其他任何未被屏蔽的中断请求。中断处理结束时,用OCW1撤销前面设置的屏蔽位,并用OCW3撤销了特殊屏蔽方式。8259A又按照原优先级方式工作。 2.用“或”的方法来设置屏蔽字可以不影响其他位的屏蔽状态。
主程序 IR2中断处理程序 初始化 IR2又有中断 开中断 IR2请求中断 IR2'中断处理程序 开中断 IR1中断处理程序 开中断 IR3中断处理程序 IR3中断请求 开中断 关中断 IR1中断请求 中断结束命令 关中断 关中断 ┆ 中断结束命令 中断结束命令 开中断 开中断 中断返回 关中断 中断返回 中断结束命令 ┆ 开中断 中断返回 开中断 中断返回
7.16 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.17 试说明在DMA方式时内存往外设传输数据的过程。
答:当一个接口要由内存往其输出数据时,就往DMA控制器发一个DMA请求;DMA控制器接到
请求以后,便往控制总线上发一个总线请求;若CPU允许让出总线便发出一个总线允许信号;DMA控制器接到此信号后,就将地址寄存器的内容送到地址总线上,同时往接口发一个DMA回答信号并发一个I/O写信号和一个内存读信号;内存接到读信号后将数据送到数据总线,I/O写信号将数据送到接口,并撤除DMA请求信号,于是DMA控制器的地址寄存器的内容加1或减1,计数器的值减1,而且撤除总线请求信号,就完成了对一个数据的DMA输出传输。
7.18 对一个DMA控制器的初始化工作包括哪些内容?
答:① 将数据传输缓冲区的起始地址或者结束地址送到地址寄存器中;
② 将传输的字节数或字数送到计数器中。 ③ 通过模式寄存器设置工作方式等。
7.19 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.20 8237A有哪几种工作模式?各自用在什么场合?
答:1.8237A有4种工作模式:单字节传输模式、块传输模式、请求传输模式、级联传输模式。
2.单字节传输模式用于单个字节的DMA输入/输出;块传输模式用于连续进行多个字节的传输;请求传输模式用于受接口控制的连续字节传输;级联传输模式用于多片主从式DMA系统中的主片的工作模式。
7.21 什么叫DMA控制器的自动预置功能?这种功能是用得很普遍的,举一个例子说明它的使用场合。
答:1.自动预置功能就是DMA控制器某通道在当前字节计数器的计数值到达0时,当前地址寄存
器和当前字节计数器会从基本地址寄存器和基本字节计数器中自动重新取得新值,从而又可以进入下一个数据传输过程。
2.如IBM PC/XT中,8237A的通道0用于对动态RAM进行刷新,就设置为自动预置功能。从头到尾进行一遍刷新后,就又可以自动重新再来若干遍刷新,保持数据不从动态RAM中丢
失。用于同一内存地址的数据块重复传输中。
7.22 用DMA控制器进行内存到内存的传输时,有什么特点?
答:固定用通道0的地址寄存器存放源地址,而用通道1的地址寄存器和字节计数器存放目的地址
和计数值。传输时,目的地址和计数值象通常一样进行加1减1操作,源地址的值可通过控制寄存器的D1位设置,若为1则不变。另外用暂存器作为数据传输时DMA的数据暂存用。另外,DMA控制器进行内存到内存的传输是通过设置控制寄存器的D0=1来设置的。
7.23 DMA控制器8237A是怎样进行优先级管理的?
答:8237A有两种优先级管理方式:固定优先级管理方式,优先级高低固定为:通道0、1、2、3。
循环优先级管理方式,通道的优先级依次循环,当某通道进行一次传输后,其优先级变为最低,而其相邻的高一号通道的优先级变为最高。
7.24 设计8237A的初始化程序。8237A的端口地址为0000~000FH,设通道0工作在块传输模式,地址
加1变化,自动预置功能;通道1工作于单字节读传输,地址减1变化,无自动预置功能;通道2、通道3和通道1工作于相同方式。然后对8237A设控制命令,使DACK为高电平有效,DREQ为低电平有效,用固定优先级方式,并启动8237工作。 答:
MOV MOV
AL,04H DX,DMA+8
;DMA为端口首地址0000H,DMA+8为控制寄 ;存器端口号
OUT MOV MOV OUT MOV MOV OUT
DX,AL
;输出控制命令,关闭8237A
AL,00
DX,DMA+0DH ;DMA+0DH为总清命令端口号
DX,AL
;发总清命令(即复位命令)
DX,DMA+0BH ;DMA+0BH为模式寄存器的端口号 AL,98H
DX,AL
;对通道0选择模式,模式字为98H:块读传输模 ;式,地址加1变化,自动预置功能
MOV OUT
AL,69H
DX,AL
;对通道1选择模式,模式字为69H:单字节读传 ;输,地址减1变化,无自动预置功能
MOV OUT
AL,6AH
DX,AL
;对通道2选择模式,模式字为6AH:功能同通道1
MOV OUT MOV MOV
AL,6BH
DX,AL
;对通道3选择模式,模式字为6BH:功能同通道1
DX,DMA+8 AL,0C0H
;控制字格式为C0H: DACK高电平有效,DREQ ;低电平有效,固定优先级,启动工作
OUT MOV MOV OUT ┆
DX,AL
DX,DMA+0FH ;DMA+0FH为综合屏蔽命令端口号 AL,0
DX,AL
;去除四个通道的屏蔽
7.25 概述怎样用软件方法和硬件方法来进行定时。
答:① 软件方法就是根据所需要的时间常数来设计一个延迟子程序。当延迟子程序执行完后,可
直接执行下面的操作,也可用输出指令输出一个信号作为定时输出。
② 硬件方法使用计数器/定时器。根据需要的定时时间,用指令对计数器/定时器设置定时常数,
并用指令启动计数器/定时器,于是计数器/定时器开始计数,计到确定值时,便自动产生一个定时输出。
7.26 8253计数器/定时器中,时钟信号CLK、门脉冲信号GATE分别起什么作用?
答:时钟信号CLK决定了计数的速率,是计数减1的依据。而门脉冲信号GATE是作为对时钟的
控制信号,以控制计数的启停。
7.27 说明8253在6种工作方式下的特点,并举例说明使用场合。
答:① 模式0、模式1、模式4、模式5为软件启动或硬件启动的不自动重复的计数方式;模式2、
模式3为即可软件启动也可硬件启动的自动重复的定时器方式。
② 作为计数器时,8253在GATE控制下进行减1计数,减到终值时,输出一个信号,至此计
数过程便结束。作为定时器工作时,8253在门控GATE控制下进行减1计数,减到终值时,又自动装入初值,重新作减1计数,于是输出端会不间断地产生为时钟周期整数倍的定时间隔。
③ 定时方式一般用于实时控制及周期性操作中,如日时钟定时、扬声器发声、波特率发生器
等场合。计数方式则用于外部事件的计数,如生产线上的产品计数等场合。
7.28 8253工作于模式4和模式5时有什么不同?
答:模式4是用软件触发启动,GATE为低电平时停止计数;而模式5则用门控GATE的上升沿触