第六章 习题与思考题
典型例题解析
例6-1 试述PC微机中断系统的分类与特点。
答:PC微机系统中断包括硬件(外部)中断和软件(内部)中断两大类。硬件中断包括不可屏蔽中断NMI和可屏蔽中断INTR。它们都由外部硬件产生。软件中断包括软件中断INT nH和CPU内部特殊中断,它们由内部中断指令或执行程序过程中出现异常产生的。软件中断又有DOS中断和BIOS中断之分。
硬件中断的特点是:
(1)硬中断是外部事件而引起的中断,因此,硬件中断具有随机性和突发性。
(2)在硬件中断响应周期,CPU需要发中断回答信号(非屏蔽硬件中断不发中断回答信号)。
(3)硬件中断的中断号由中断控制器提供(非屏蔽硬件中断的中断号由系统指定为02H)
(4)硬件中断一般是可屏蔽的(非屏蔽硬件中断是不可屏蔽的)。? 软件中断的特点是:
(1)软件中断是执行中断指令而产生的,无需外部施加中断请求信号。在程序需要调用某个中断服务程序时,只要安排一条相应中断指令,就可转去执行所需要的中断程序,因此,中断的发生不是随机的,而是由程序安排好的。
(2)在软件中断响应周期,CPU不需要发中断回答信号。
(3)软件中断的中断类型号是在指令中直接给出,因此,不需要使用中断控制器。 (4)软件中断是不可屏蔽的。
例6-2 试述可编程控制器8259A的作用。
答:可编程控制器8259A在协助CPU处理中断事务中所起的作用主要是:
(1)接受和扩充外部设备的中断请求。外设的中断请求,并非直接送到CPU,而是通过8259A接受进来,再由它向CPU提出中断请求。一片8259A可授受8个中断请求,经过级联可扩展到8片8259A,能接受64个中断请求。
(2)进行中断优先级排队。外设的中断优先级排队,并不是CPU安排,而是由8259A安排的。即由8259A中断请求输入引脚(IR)的编号决定的。连到IR0上的外设中断优先级最高,连到IR7上的外设中断优先级最低。
(3)向CPU提供中断类型号。其过程是先在8259A初始化时,将中断源的中断类型号写入8259A的ICW2,当CPU响应中断,进入中断响应周期,用中断回答信号INTA2,再从8259A读取这个中断类型号。
例6-3 试述中断向量表的作用及构成。 答:中断向量也即中断服务程序入口地址,系统中所有的中断服务程序入口地址集中起来放到存储器的某一区域内,这个存放中断向量的存储区就叫中断矢量表。中断向量表提供了每一个中断服务程序唯一的确定的入口地址,该入口地址包括4个字节,低2个字节的内容为中断服务程序的偏移地址IP,高2个字节的内容为中断服务程序的段基值CS。.把系统中所有的中断向量集中起来存入到存储器的某一存储区内,这个存放中断向量的存储区就叫中断向量表或中断服务程序入口地址表(中断服务程序首址表)。实模式下,规定把存储器的0000~3FFH共1024个地址单元作为中断向量存储区。
1
中断向量表的格式,即每个中断向量的4个字节在中断向量表的存放规律是,向量的偏移量(IP)放在两个低字节单元中,向量的基址(CS)放在两个高字节单元中。
例6-4某8086微机系统由两片8259A级联构成中断系统,如图6.3所示。从片8259A接主片的IR2,主片的IR3和IR5有中断引入,中断类型号为33H,35H。两个中断服务程序在同一段内,段基址为2000H,偏移地址分别为1500H和2000H。从片IR4和IR6上有中断请求引入,类型号分别为44H,46H,中断服务程序在同一段
————————内,段基址为3000H,偏移地INTA CAS0 CAS0 INTA 址为4000H和4700H,试分别CAS1 IR0 CAS1 写出主8259A和从8259A的初到CPU CAS2 CAS2 始化程序,将4个中断服务程 序的入口地址装入中断向量表INT IR0 中。 。 。。⑴初始化编程: INT IR2 由于是级联方式,所以,主。 IR7 。。————————片8259A和从片8259A应分别VCC SP/EN IR7 SP/EN 初始化,且要ICW3。假设对主片8259A的使用要求是:主主8259A 从8259A 8259A有级联输入且从IR2引图6.3 例6.4的8259A级联图 入;中断请求信号为边沿触发,
中断类型号为30H~37H;采用特殊全嵌套方式,非缓冲方式,非自动EOI结束方式(即普通EOI结束方式);屏蔽IR2,IR3,IR5以外的中断源,主片的端口地址为3F50H,3F51H。 根据上述使用要求可编写主8259A的初始化程序:
MOV AL,11H ;设置ICW1主8259A采用级联方式,边沿触发 MOV DX,3FF50H ;ICW1的口地址 OUT DX,AL
MOV AL,30H ;设置ICW2即设置中断类型码基值,本例中为30H MOV DX,3F51H ;ICW2口地址 OUT DX,AL
MOV AL,04H ;设置ICW3,主片的IR2上接有从片8259A的INT端 OUT DX,AL
MOV AL,11H ;设置ICW4,特殊全嵌套、非缓冲方式、非自动EOL结束方式 OUT DX,AL
MOV AL,0DH ;设置OCW1,允许IR2,IR3,IR5中断,其他中断均屏蔽 OUT DX,AL
MOV AL,20H ;定义OCW2,普通EOI结束方式 MOV DX,3F50H OUT DX,AL
对从片的初始化:
假设对从片8259A的使用要求是:从片8259A接主片的IR2上,中断申请信号为边沿触发;中断类型号别为40H~47H,从片的端口地址为3F52H,3F53H;优先级采用特殊全嵌套方式,结束方式采用非自动结束EOI,非缓冲方式;采用普通EOI结束方式,屏蔽IR4,IR6以外的中断源。
2
根据上述对从片8259A的使用要求,其初始化程序如下:
MOV AL, 11H ;设置ICW1,级联方式,边沿触发,要ICW4
MOV DX, 3F52H ;8259A的偶地址端口 OUT DX, AL
MOV AL, 40H ;设置ICW2即设置中断类型码基值,引入中断类型号为40H~47H MOV DX, 3F53H ;8259A奇地址端口 OUT DX, AL
MOV AL, 02H ;设置ICW3,从片接在主片的IR2端 OUT DX, AL
MOV AL, 11H ;设置ICW4,特殊全嵌套、非缓冲方式,非自动EOI结束方式 OUY DX, AL
MOV AL, 0AFH ;设置OCW1,允许IR4,IR6,屏蔽其他中断源 OUT DX, AL MOV DX,3F52H
MOV AL, 20H ;设置OCW2,普通方式 OUT DX, AL
⑵中断向量装入:
将4个中断服务程序的入口地址装入中断向量表,向量地址的装入方法很多,本例中用DOS功能调用法。方法是:
使用25号功能调用,先将功能调用号25送AH,再将中断类型号送入AL,将中断服务程序的段基址和偏移地址送入DS:DX,然后用INT 21H调用即可。
本例中将4个中断服务程序的入口地址装入中断向量表的程序如下:
MOV AX ,2000H ;送主片的服务程序所在段的段基址 MOV DS, AX
MOV DX, 1500H ;送入偏移地址
MOV AL, 33H ;中断类型号33H号送AL MOV AH, 25H ;功能调用号送AH INT 21H
MOV DX, 2000H ;第二个偏移地址送DX MOV AL, 35H ; 送中断类型号35H INT 21H
MOV AX, 3000H ;送从片的中断服务程序入口地址的段基址 MOV DX, AX
MOV DX, 4000H ;送从片的服务程序的偏移地址 MOV AL, 44H ; 送中断类型号 MOV AH, 25H INT 21H
MOV DX, 4700H ;送另一个入口地址的偏移地址 MOV AL, 46H ;送中断类型号 INT 21H
INTA00 EQU 20H ;PC/XT系统中8259A的偶地址端口 INTA01 EQU 21H ;PC/XT系统中8259A的奇地址端口 DATA SEGMENT
3
MESS DB‘THIS START:MOV AX , CS
MOV DS , AX ;设DS指向代码段 MOV DX , OFFSET INT-PROC MOV AX , 250AH ;设0AH号中断向量 INT 21H
CLI ;关中断 MOV DX , INTA01
IN AL , DX ;允许IRQ2中断 AND AL , 0FBH OUT DX , AL
MOV BX , 10 ;设置中断次数10 STI ;开中断 LL: JMP LL ;循环等待中断 INT-PROC PROC ;中断服务程序
MOV AX , DATA
MOV DS , AX ;将DS指向数据段 MOV DX , OFFSET MESS MOV AH , 09H
INT 21H ;显示发生中断的信息 MOV DX , INT00 MOV AL , 20H
OUT DX , AL ;发中断结束命令EOI SUB BX , 1
JNZ NEXT ;BX计数减1,不为0转NEXT MOV DX , INTA01 IN AL , DX
OR AL, 04 ;BX为0,关IRQ2中断 OUT DX , AL
STI ;开中断 MOV AH , 4CH
INT 21H ;返回DOS
NEXT: IRET ;中断返回 INT-PROC ENDP CODE ENDS
END START
习题与思考题
一、填空题
1. 引发中断的事件,称为是 。对中断进行管理的所有硬件和软件的总和称为 。
2. 对于可屏蔽中断请求,CPU响应条件为 、 和 。 3. 对于非屏蔽中断请求,CPU响应条件为 和 。
4
4. 中断源识别的两种方法是 和 。
5. 8086/8088中断共有 种类型中断,可分为 中断和 中断。 6. 中断服务入口地址表又称为中断向量表,每个中断向量占用 字节空间,2个低位字节为 ,2个高位字节为 。
7. 若中断类型号为13,则这个中断向量的第一个字节的地址为 。 8. 若中断类型号为14H,则这个中断向量的第一个字节的地址为 。 9. 由CPU执行某些指令引起的中断称之为 。 10. 8086/8088的中断属于 中断类型。
11. 程序中断方式控制输入输出的主要特点是,可以使 和 并行工作。 12. 8259A中断控制器作用是 。 13. 根据中断请求来自外部或来自内部,中断分为 和 。 14. 类型的中断常分为非屏蔽中断和可屏蔽中断。 15. 8259A中断控制器的命令字分为 和 。
16. 8086/8088的中断向量表中,每个中断处理程序的入口地址占 字节。 17. 8259A可编程控制器,当单片使用时,可同时接收 级外设的中断请求;当级联使用时,可同时接收多达 级外设的中断请求。
18. 中断源识别的是 。
19. 中断向量是指 。 20. 向量中断是指 。 21.
若中断向量的第一个字节的地址为0190H,则该中断的类型号为( )H。
二、选择题:
1. 在单级中断系统中,CPU一旦响应中断,则立即关闭___标志,以防止本次中断服务结
束前同级的其他中断源产生另一次中断进行干扰。
A.中断允许 B. 中断请求 C. 中断屏蔽 D。中断嵌套
2. 下面有关“中断”的叙述,______是不正确的。 A. 一旦有中断请求出现,CPU立即停止当前指令的执行,转而去受理中断请求。 B. CPU响应中断时暂停运行当前程序,自动转移到中断服务程序。 C. 中断方式一般适用于随机出现的服务。
D.为了保证中断服务程序执行完毕以后,能正确返回到被中断的断点继续执行程。 3. 发生中断请求的条件是______。
A. 一条指令执行结束 B. 一次I/O操作开始 C. 机器内部发生故障 D. 一次DMA操作开始
4. 为了便于实现多级中断,保存现场最有效的方法是采用______。 A. 通用寄存器 B. 堆栈 C. 存储器 D. 外存
5. 硬中断服务程序结束返回断点时,程序未尾要安排一条指令IRET,它的作用是____。 A.构成中断结束命令 B.恢复断点信息并返回 C.转移到IRET的下一条指令 D.返回到断点处 6. 中断允许触发器用来_____。
A.表示外设是否提出了中断请求 B.CPU是否响应了中断请求 C.CPU是否正在进行中断处理 D.开放或关闭可屏蔽硬中断 7 CPU响应二个硬件中断INTR和NMI时相同的必要条件是____。
A.允许中断 B.当前指令执行结束 C.总线空闲 D.当前访问存储器操作结束 8.在两片8259A级联的中断系统中,从片的INT端接到主片的IR5端,则初始化主、从片ICW3
5