汇编语言程序设计 习题7:中断控制接口学习资料.doc
PAGE
PAGE1
第七章中断控制接口
〔习题7.1〕
8088CPU具有哪些中断类型?各种中断如何产生,如何得到中断向量号?
解答1:
?除法错中断:在执行除法指令时,除数为0或商超过了寄存器所能表达的范围产生
?指令中断:在执行中断指令INTn时产生
?溢出中断:在执行溢出中断指令INTO时,溢出标志OF为1产生
?单步中断:单步标志TF为1,在每条指令执行结束后产生
?非屏蔽中断:外部通过NMI请求信号向微处理器提出请求时产生
?可屏蔽中断:外部通过INTR请求信号向微处理器提出请求,并在允许可屏蔽中断的条件下产生
解答2:
?除法错中断、溢出中断、单步中断、非屏蔽中断的向量号是8086微处理器内部已经确定
?指令中断的操作数n就是向量号
?可屏蔽中断的向量号在响应中断时通过数据总线从外部获得
〔习题7.2〕
8088中断向量表的作用是什么?
〔解答〕
参看教材7.1.3节(P166页)
〔习题7.11〕
下段程序读出的是8259A的哪个寄存器?
moval,0bh
out20h,al
nop
inal,20h
〔解答〕
?读取中断服务寄存器ISR的内容
?因为执行输入指令(A0=0)之前,执行的输出指令,写入了OCW3(D4D3=01),其中PRRRIS(D2D1D0)=011指明随后读出ISR
?不是查询字
〔习题7.14〕
中断服务程序的人口处为什么通常要使用开中断指令?
〔解答〕
?开中断,以便可以实现中断嵌套。
补充:1.如何利用DOS功能调用设置中断向量?
--解答参考教材第8.1.3节(第1
解答:
设置中断向量即为把新中断向量写入中断向量表内。方法如下:
MOVAH,25H
MOVAL,中断向量号
MOVDS,新中断向量的段地址
MOVDX,新中断向量的偏移地址
INT21H
补充:2.如何利用DOS功能调用获取中断向量?
--解答参考教材第8.1.3节(第1
解答:
获取中断向量即为把中断向量表内的中断向量读出到ES:BX中。方法如下:
MOVAH,35H
MOVAL,中断向量号
INT21H
补充:3.如何开CPU的中断允许?
解答:
用STI指令使IF=1。
补充:4.如何开8259A的中断允许?
解答:
OCW1中的IMR的第i位=0,即允许IR中的第i位发出中断申请。
编程方法参见P207页(5)。