第八章 “中断控制接口”习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第八章中断控制接口
〔习题8.1〕
8088 CPU具有哪些中断类型?各种中断如何产生,如何得到中断向量号?
解答1:
⏹除法错中断:在执行除法指令时,除数为0或商超过了寄存器所能表达的范围产生
⏹指令中断:在执行中断指令INT n时产生
⏹溢出中断:在执行溢出中断指令INTO时,溢出标志OF为1产生
⏹单步中断:单步标志TF为1,在每条指令执行结束后产生
⏹非屏蔽中断:外部通过NMI请求信号向微处理器提出请求时产生
⏹可屏蔽中断:外部通过INTR请求信号向微处理器提出请求,并在允许可屏蔽中断的条件下产生
解答2:
⏹除法错中断、溢出中断、单步中断、非屏蔽中断的向量号是8086微处理器内部已经确定
⏹指令中断的操作数n就是向量号
⏹可屏蔽中断的向量号在响应中断时通过数据总线从外部获得
〔习题8.2〕
8088中断向量表的作用是什么?
〔解答〕
参看教材8.1.3节(P194页)
〔习题8.11〕
下段程序读出的是8259A的哪个寄存器?
mov al,0bh
out 20h,al
nop
in al,20h
〔解答〕
⏹读取中断服务寄存器ISR的内容
⏹因为执行输入指令(A0=0)之前,执行的输出指令,写入了OCW3(D4D3=01),其中P RR RIS(D2D1D0)=011指明随后读出ISR
⏹不是查询字
〔习题8.14〕
中断服务程序的人口处为什么通常要使用开中断指令?
〔解答〕
⏹开中断,以便可以实现中断嵌套
补充:1. 如何利用DOS功能调用设置中断向量?
--解答参考教材第8.1.3节(第195页)
解答:
设置中断向量即为把新中断向量写入中断向量表内。方法如下:
MOV AH,25H
MOV AL,中断向量号
MOV DS,新中断向量的段地址
MOV DX,新中断向量的偏移地址
INT 21H
补充:2. 如何利用DOS功能调用获取中断向量?
--解答参考教材第8.1.3节(第195页)
解答:
获取中断向量即为把中断向量表内的中断向量读出到ES:BX中。方法如下:MOV AH,35H
MOV AL,中断向量号
INT 21H
补充:3. 如何开CPU的中断允许?
解答:
用STI指令使IF=1。
补充:4. 如何开8259A的中断允许?
解答:
OCW1中的IMR的第i位=0,即允许IR中的第i位发出中断申请。
编程方法参见P207页(5)。