微机原理4.docx
- 文档编号:29971346
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:23
- 大小:43.47KB
微机原理4.docx
《微机原理4.docx》由会员分享,可在线阅读,更多相关《微机原理4.docx(23页珍藏版)》请在冰豆网上搜索。
微机原理4
第七章中断控制器、DMA控制器和计数器/定时器
7.18259A的初始化命令字和操作命令字有什么差别?
它们分别对应于编程结构中哪些内部寄存器?
答:
1.8259A的初始化命令字是计算机系统启动时,由初始化程序设置的。
初始化命令字一旦设定,一般在系统工作过程中就不再改变。
操作命令字则是由应用程序设定的,它们用来对中断处理过程作动态控制,在一个系统运行过程中,操作命令字可以多次设置。
2.初始化命令字对应于编程结构的ICW1、ICW2、ICW3、ICW4共4个寄存器。
操作命令字对应于编程结构的OCW1、OCW2、OCW3共3个寄存器。
7.28259A的中断屏蔽寄存器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.38259A的全嵌套方式和特殊全嵌套方式有什么差别?
各自用在什么场合?
答:
1.全嵌套工作方式,只有更高级的中断请求来到时,才会进行嵌套。
而特殊全嵌套方式则能被同级和高级的中断请求所嵌套。
2.全嵌套方式用于单片8259A的场合。
特殊全嵌套方式用于多片8259A系统。
7.48259A的优先级循环方式和优先级特殊循环方式有什么差别?
答:
在优先级特殊循环方式中,一开始的最低优先级是由编程确定的,从而最高优先级也由此而定。
而优先级自动循环方式初始优先级队列为IR0~IR7。
7.58259A的特殊屏蔽方式和普通屏蔽方式相比,有什么不同之处?
特殊屏蔽方式一般用在什么场合?
答:
1.在特殊屏蔽方式中用OCW1对屏蔽寄存器中某一位进行置位时,就会同时使ISR中的对应位自动清0。
而普通屏蔽方式对OCW1的操作不影响ISR中各位的状态。
2.特殊屏蔽方式用于中断处理程序中,以开放比本身的优先级较低的中断请求。
7.68259A有几种结束中断处理的方式?
各自应用在什么场合?
除了中断自动结束方式以外,其他情况下如果没有在中断处理程序中发中断结束命令,会出现什么问题?
答:
1.8259A有三种结束中断处理的方式。
2.中断自动结束方式用于只有一片8259A,并且多个中断不会嵌套的情况。
一般的中断结束方式用在全嵌套情况下及多片8259A的级联系统中。
特殊中断结束方式用于循环优先级的8259A中。
3.不发中断结束命令会使8259A认为该中断未结束,从而挡住了低优先级的中断被响应,即中断控制功能不正常。
7.78259A引入中断请求的方式有哪几种?
如果对8259A用查询方式引入中断请求,那会有什么特点?
中断查询方式用在什么场合?
答:
1.引入中断请求的方式有:
边沿触发方式、电平触发方式、中断查询方式三种。
2.中断查询方式的特点:
1设备仍然通过往8259A发中断请求信号要求CPU服务,但8259A不使用INT信号向CPU发中断请求信号。
2CPU内部的中断允许触发器复位,所以禁止了外部对CPU的中断请求。
3CPU要使用软件查询来确认中断源,从而实现对设备的中断服务。
3.中断查询方式一般用在多于64个中断的场合,也可以用在一个中断服务程序中的几个模块分别为几个中断设备服务的情况。
7.88259A的初始化命令字有哪些?
它们各自有什么含义?
哪几个应写入奇地址?
哪几个应写入偶地址?
答:
1.8259A的初始化命令字有ICW1、ICW2、ICW3、ICW4共四个。
2.ICW1——芯片控制初始化命令字。
ICW2——设置中断类型码的初始化命令字。
ICW3——标志主片/从片的初始化命令字。
ICW4——方式控制初始化命令字。
3.ICW2、ICW3、ICW4必须写入奇地址端口中。
4.ICW1必须写入偶地址端口中。
7.98259A的ICW2设置了中断类型码的哪几位?
说明对8259A分别设置ICW2为30H、38H、36H有什么差别?
答:
1.8259A的ICW2设置了中断类型码的高5位。
低3位中断类型码对应引入中断的引腿号。
2.当设置ICW2为30H和36H时,完全相同。
对应的8个中断类型码为30H~37H。
而设置ICW2为38H时,对应的8个中断类型码为38H~3FH。
7.108259A通过ICW4可以给出哪些重要信息?
什么情况下不需要ICW4?
什么情况下要设置ICW3?
答:
1.当SFNM=1则为特殊的全嵌套方式;BUF=1则为缓冲方式;若为缓冲方式(BUF=1)则M/
=1表示本片为主片,M/
=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。
答:
MOVAL,1BH;ICW1的命令字为00011011B=1BH
OUT90H,AL;ICW1送偶地址端口
MOVAL,60H;ICW2的命令字为60H
OUT92H,AL;ICW2送奇地址端口
MOVAL,13H;ICW4的命令字为00010011B=13H
OUT92H,AL;ICW4送奇地址端口
7.12怎样用8259A的屏蔽命令字来禁止IR3和IR5引腿上的请求?
又怎样撤销这一禁止命令?
设8259A的端口地址为90H、92H。
答:
1.CLI
INAL,92H;(AL)←(IMR)
ORAL,28H;禁止IR3和IR5引腿上的中断请求
OUT92H,AL;OCW1送奇地址端口
STI
2.CLI
INAL,92H;(AL)←(IMR)
ANDAL,0D7H;允许IR3和IR5引腿上的中断请求
OUT92H,AL;OCW1送奇地址端口
STI
7.13试用OCW2对8259A设置中断结束命令,并使8259A按优先级自动循环方式工作。
答:
MOVAL,0A0H;OCW2的命令字为10100000B=A0H,满足上述要求
OUTPORT0,AL;OCW2送偶地址端口
7.14用流程图来表示特殊全嵌套方式的工作过程。
设主程序运行时先在IR2端有请求,接着IR2端又有请求,而此时前一个IR2还未结束,后来IR3端有请求,再后来IR1端有请求。
答:
流程图如下页所示:
7.15说明特殊屏蔽方式的使用方法。
为什么要用“或”的方法来设置屏蔽字?
答:
1.某一中断服务程序先用OCW3命令字(ESMM=1,SMM=1)使8259A工作在特殊屏蔽方式,再用OCW1对IMR中本中断的对应位进行置位,就可以使系统除了对本级中断外,响应其他任何未被屏蔽的中断请求。
中断处理结束时,用OCW1撤销前面设置的屏蔽位,并用OCW3撤销了特殊屏蔽方式。
8259A又按照原优先级方式工作。
2.用“或”的方法来设置屏蔽字可以不影响其他位的屏蔽状态。
7.1680386系统中,8259A采用了级连方式,试说明在主从式中断系统中8259A的主片和从片的连接关系。
答:
从片的INT输出接主片的IR0~IR7的某一输入端;主片的CAS2~CAS0接从片的CAS2~CAS0;主片的
和从片的
连在一起接CPU的
输出端;主片和从片的
、
、D7~D0也都连在一起和CPU的
、
、DB7~DB0连接;主片和从片的A0连在一起接系统总线的AB1上;主片的
/
接数据驱动器的
端,从片的
/
接地;主片和从片的
各自接在地址译码器的一个输出端上。
7.17试说明在DMA方式时内存往外设传输数据的过程。
答:
当一个接口要由内存往其输出数据时,就往DMA控制器发一个DMA请求;DMA控制器接到请求以后,便往控制总线上发一个总线请求;若CPU允许让出总线便发出一个总线允许信号;DMA控制器接到此信号后,就将地址寄存器的内容送到地址总线上,同时往接口发一个DMA回答信号并发一个I/O写信号和一个内存读信号;内存接到读信号后将数据送到数据总线,I/O写信号将数据送到接口,并撤除DMA请求信号,于是DMA控制器的地址寄存器的内容加1或减1,计数器的值减1,而且撤除总线请求信号,就完成了对一个数据的DMA输出传输。
7.18对一个DMA控制器的初始化工作包括哪些内容?
答:
①将数据传输缓冲区的起始地址或者结束地址送到地址寄存器中;
②将传输的字节数或字数送到计数器中。
③通过模式寄存器设置工作方式等。
7.19DMA控制器8237A什么时候作为主模块工作?
什么时候作为从模块工作?
在这两种情况下,各控制信号处于什么状态,试作说明。
答:
1.在外设向8237A发DMA请求,8237A向CPU发总线请求得到CPU总线允许时,获得了总线控制权就作为总线主模块工作。
2.当CPU把数据送到8237A的寄存器或者从8237A的寄存器取出时,8237A就象I/O接口一样作为总线的从模块工作。
3.主模块工作时的控制信号:
DREQx有效,HRQ高,HLDA高,DACKx有效,AEN高,
、
或
、
有效,16位地址送地址总线。
从模块工作时的控制信号:
和HRQ为低,A3~A0为某一确定值,
或
有效。
7.208237A有哪几种工作模式?
各自用在什么场合?
答:
1.8237A有4种工作模式:
单字节传输模式、块传输模式、请求传输模式、级联传输模式。
2.单字节传输模式用于单个字节的DMA输入/输出;块传输模式用于连续进行多个字节的传输;请求传输模式用于受接口控制的连续字节传输;级联传输模式用于多片主从式DMA系统中的主片的工作模式。
7.21什么叫DMA控制器的自动预置功能?
这种功能是用得很普遍的,举一个例子说明它的使用场合。
答:
1.自动预置功能就是DMA控制器某通道在当前字节计数器的计数值到达0时,当前地址寄存器和当前字节计数器会从基本地址寄存器和基本字节计数器中自动重新取得新值,从而又可以进入下一个数据传输过程。
2.如IBMPC/XT中,8237A的通道0用于对动态RAM进行刷新,就设置为自动预置功能。
从头到尾进行一遍刷新后,就又可以自动重新再来若干遍刷新,保持数据不从动态RAM中丢失。
用于同一内存地址的数据块重复传输中。
7.22用DMA控制器进行内存到内存的传输时,有什么特点?
答:
固定用通道0的地址寄存器存放源地址,而用通道1的地址寄存器和字节计数器存放目的地址和计数值。
传输时,目的地址和计数值象通常一样进行加1减1操作,源地址的值可通过控制寄存器的D1位设置,若为1则不变。
另外用暂存器作为数据传输时DMA的数据暂存用。
另外,DMA控制器进行内存到内存的传输是通过设置控制寄存器的D0=1来设置的。
7.23DMA控制器8237A是怎样进行优先级管理的?
答:
8237A有两种优先级管理方式:
固定优先级管理方式,优先级高低固定为:
通道0、1、2、3。
循环优先级管理方式,通道的优先级依次循环,当某通道进行一次传输后,其优先级变为最低,而其相邻的高一号通道的优先级变为最高。
7.24设计8237A的初始化程序。
8237A的端口地址为0000~000FH,设通道0工作在块传输模式,地址加1变化,自动预置功能;通道1工作于单字节读传输,地址减1变化,无自动预置功能;通道2、通道3和通道1工作于相同方式。
然后对8237A设控制命令,使DACK为高电平有效,DREQ为低电平有效,用固定优先级方式,并启动8237工作。
答:
MOVAL,04H
MOVDX,DMA+8;DMA为端口首地址0000H,DMA+8为控制寄
;存器端口号
OUTDX,AL;输出控制命令,关闭8237A
MOVAL,00
MOVDX,DMA+0DH;DMA+0DH为总清命令端口号
OUTDX,AL;发总清命令(即复位命令)
MOVDX,DMA+0BH;DMA+0BH为模式寄存器的端口号
MOVAL,98H
OUTDX,AL;对通道0选择模式,模式字为98H:
块读传输模
;式,地址加1变化,自动预置功能
MOVAL,69H
OUTDX,AL;对通道1选择模式,模式字为69H:
单字节读传
;输,地址减1变化,无自动预置功能
MOVAL,6AH
OUTDX,AL;对通道2选择模式,模式字为6AH:
功能同通道1
MOVAL,6BH
OUTDX,AL;对通道3选择模式,模式字为6BH:
功能同通道1
MOVDX,DMA+8
MOVAL,0C0H;控制字格式为C0H:
DACK高电平有效,DREQ
;低电平有效,固定优先级,启动工作
OUTDX,AL
MOVDX,DMA+0FH;DMA+0FH为综合屏蔽命令端口号
MOVAL,0
OUTDX,AL;去除四个通道的屏蔽
┆
7.25概述怎样用软件方法和硬件方法来进行定时。
答:
①软件方法就是根据所需要的时间常数来设计一个延迟子程序。
当延迟子程序执行完后,可直接执行下面的操作,也可用输出指令输出一个信号作为定时输出。
②硬件方法使用计数器/定时器。
根据需要的定时时间,用指令对计数器/定时器设置定时常数,并用指令启动计数器/定时器,于是计数器/定时器开始计数,计到确定值时,便自动产生一个定时输出。
7.268253计数器/定时器中,时钟信号CLK、门脉冲信号GATE分别起什么作用?
答:
时钟信号CLK决定了计数的速率,是计数减1的依据。
而门脉冲信号GATE是作为对时钟的控制信号,以控制计数的启停。
7.27说明8253在6种工作方式下的特点,并举例说明使用场合。
答:
①模式0、模式1、模式4、模式5为软件启动或硬件启动的不自动重复的计数方式;模式2、模式3为即可软件启动也可硬件启动的自动重复的定时器方式。
②作为计数器时,8253在GATE控制下进行减1计数,减到终值时,输出一个信号,至此计数过程便结束。
作为定时器工作时,8253在门控GATE控制下进行减1计数,减到终值时,又自动装入初值,重新作减1计数,于是输出端会不间断地产生为时钟周期整数倍的定时间隔。
③定时方式一般用于实时控制及周期性操作中,如日时钟定时、扬声器发声、波特率发生器等场合。
计数方式则用于外部事件的计数,如生产线上的产品计数等场合。
7.288253工作于模式4和模式5时有什么不同?
答:
模式4是用软件触发启动,GATE为低电平时停止计数;而模式5则用门控GATE的上升沿触发即硬件触发启动,GATE为低电平时不影响计数。
7.29编程将8253计数器0设置为模式1,计数初值为3000H;计数器1设置为模式2,计数初值为2010H;计数器2设置为模式4,计数初值为4030H;地址设为0070H、0072H、0074H、0076H。
答:
MOVAL,32H;设置计数器0为模式1
OUT76H,AL
MOVAX,3000H;写计数初值
OUT70H,AL
MOVAL,AH
OUT70H,AL
MOVAL,74H;设置计数器1为模式2
OUT76H,AL
MOVAX,2010H;写计数初值
OUT72H,AL
MOVAL,AH
OUT72H,AL
MOVAL,0B8H;设置计数器2为模式4
OUT76H,AL
MOVAX,4030H;写计数初值
OUT74H,AL
MOVAL,AH
OUT74H,AL
7.30CPU对应DMA控制器的总线请求响应要比中断请求响应快,请分析其原因。
答:
当CPU检测到总线请求信号后在当前总线周期的T4状态或TI状态的下降沿就可响应而出让总线,并发总线响应信号HLDA。
而当CPU检测到INTR请求时,则必须要等到当前指令执行完后才能发第一个
负脉冲,而且中断响应需两个
负脉冲才可组成一个完整的中断响应信号。
因此总线请求响应要比中断请求响应快。
7.31设8259A工作于优先级循环方式,当前最高优先级为IR4,现在要使优先级最低的为IR1,则应该再设置哪个操作命令字?
具体的值是多少?
答:
1.再设置OCW2操作命令字。
2.OCW2的具体的值是C1H(=11000001B),写入偶地址端口。
7.32下面是一个对8259A进行初始化的程序段,请为下面程序段加上注释,并具体说明各初始化命令字的含义。
PORT0EQU40H;8259A的偶地址端口号
PORT1EQU41H;8259A的奇地址端口号
┆
MOVAL,13H;控制初始化命令字ICW1设为13H,中断请求为边沿触
;发方式,单片8259A,需写入ICW4
MOVDX,PORT0;取8259A的偶地址端口
OUTDX,AL;设置ICW1
INCDX;取8259A的奇地址端口
MOVAL,08H;中断类型码初始化命令字ICW2设为08H,对应于
;IR0~IR7的中断类型码为08H~0FH
OUTDX,AL;设置ICW2
MOVAL,06H;方式控制初始化命令字ICW4设为06H,非特殊全嵌套
;方式,非缓冲方式,中断自动结束方式,工作于8080/8085
;系统中
OUTDX,AL;设置ICW4
答:
初始化命令字的含义见注释。
7.33下面是一个对主从式8259A系统进行初始化的程序段,请对以下程序段加详细注释,并具体说明各初始化命令字的含义。
;主片初始化程序
M82590EQU40H;主片8259A的偶地址端口号
M82591EQU41H;主片8259A的奇地址端口号
┆
MOVAL,11H;控制初始化命令字ICW1设为11H,中断请求为边沿触
;发方式,多片8259A,需设置ICW4
MOVDX,M82590;取主片8259A的偶地址端口
OUTDX,AL;设置ICW1
MOVAL,08H;中断类型码初始化命令字ICW2设为08H,对应于
;IR0~IR7的中断类型码为08H~0FH
INCDX;取主片8259A的奇地址端口
OUTDX,AL;设置ICW2
MOVAL,04H;ICW3设为04H,只有IR2连有从片8259A
OUTDX,AL;设置ICW3
MOVAL,01H;方式控制初始化命令字ICW4设为01H,非特殊全嵌套
;方式,非缓冲方式,非中断自动结束方式,工作于
;8086/8088系统中
OUTDX,AL;设置ICW4
;从片初始化程序
S82590EQU90H;从片8259A的偶地址端口号
S82591EQU91H;从片8259A的奇地址端口号
┆
MOVDX,S82590;取从片8259A的偶地址端口
MOVAL,11H;控制初始化命令字ICW1设为11H,功能同上
OUTDX,AL;设置ICW1
MOVAL,70H;中断类型码初始化命令字ICW2设为70H,对应于
;IR0~IR7的中断类型码为70H~77H
INCDX;取从片8259A的奇地址端口
OUTDX,AL;设置ICW2
MOVAL,02H;ICW3设为02H,表示本从片与主片的IR2相连
OUTDX,AL;设置ICW3
MOVAL,01H;方式控制初始化命令字ICW4设为01H,非特殊全嵌套
;方式,非缓冲方式,非中断自动结束方式,工作于
;8086/8088系统中
OUTDX,AL;设置ICW4
答:
各初始化命令字的含义见注释。
7.348237A在进行单字节方式DMA传输和块方式DMA传输时,有什么区别?
答:
区别在于:
单字节方式时DMA每完成一个字节传输后,便释放系统总线,CPU至少可占用一个总线周期。
块传输方式时,只有当字节计数器减为0,从而在
端输出一个负脉冲或者外部I/O接口往DMA控制器的
端送一个低电平信号时,8237A才释放总线而结束传输。
7.35下面是一个常驻内存的中断服务程序框架和它的装配程序,请对此程序的注释进行补充,以便得到一个完整的注释清单。
STACKSEGMENT;设置堆栈段
DW256DUP(?
)
STACKENDS
DATASEGMENT;设置数据段
8259P0EQU40H;8259A的偶地址端口号
8259P1EQU41H;8259A的奇地址端口号
┆
DATAENDS
CODESEGMENT;设置代码段
ASSUMECS:
CODE,DS:
DATA,SS:
STACK;段说明
START1:
JMPSTART2;程序开始,直接转START2执行
INTSUBPROCFAR;定义一个远过程(段外子程序)INTSUB
STI;开中断
PUSHES;保护现场
PUSHDS
PUSHAX
PUSHBX
PUSHSI
PUSHDI
┆;中断处理内容
POPDI;恢复现场
POPSI
POPBX
POPAX
POPDS
POPES
MOVAL,20H;发一般的中断结束命令
MOVDX,8259P0;取8259A偶地址
OUTDX,AL
IRET;中断返回
INTSUBENDP;远过程定义结束
START2:
MOVAX,DATA;程序开始,取数据段的段地址送DS
MOVDS,AX
MOVAL,45H;设置中断向量的系统功能调用的入口条件
MOVAH,25H
MOVDX,OFFSETINTSUB
INT21H;设置中断向量
MOVAL,0;OCW1=00H,开放8259A的所有中断
MOVDX,8259P1;取8259A的奇地址号
OUTDX,AL
STI;开中断
MOVAX,3100H;终止用户程序并驻留内存的入口条件
MOVDX,$–INTSUB
INT21H;程序驻留退出
CODEENDS;代码段结束
ENDSTART1;程序结束
答:
注释见程序清单的下划线部分。
7.368259A在采用边沿触发方式时,为了防止IR端有毛刺产生中断,因此通常也要求有足够的脉冲宽度,这一点由8259A的内部性能所决定。
所以,中断控制器的初始化命令字虽用边沿触发
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理
![提示](https://static.bdocx.com/images/bang_tan.gif)