《微机原理答案15619.pdf》由会员分享,可在线阅读,更多相关《微机原理答案15619.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 8 章 中断系统 习题参考答案 8-18086 系统中,用 IRET 指令结束中断服务程序后,标志 IF 的值是_A_。8-2执行 8086 的 IRET 中断返回指令后,将从堆栈中弹出_C_字节数据,存入相应的寄存器。8-38086 的中断向量表中存放的是_B_。8-48086 中断向量表的范围是 RAM 地址的_A_。8-5 采用中断方式为外部设备服务的优点包括_C_。8-6 为了可以实现中断嵌套,在8086系统的中断服务程序中,需要写一条_D_。8-7在具有 2 片 8259A 级联的中断系统中,两片 8259A 都设置为非自动结束中断,以下说法中 正确的是_C_。8-8以下和中断有
2、关的操作中,必须由 CPU 自动完成的是_A_。8-9中断系统可以实现中断嵌套,其最主要的原因是_C_。8-10在 8086 系统中,一个中断类型号为 0DBH 的中断服务子程序位于从 8100H:1234H开始的内存中,在中断向量表中相应的中断向量所在的起始物理地址为_A_。8-11在 8086 系统中,一个中断类型号为 0DBH 的中断服务子程序入口地址是 8100H:1234H,这个地址在中断向量表中连续 4 个存储单元存放的内容依次为_C_。8-124 片 8259A 构成的级联中断控制系统中,最多可以直接连接的外部中断源的数目是_D_。8-138086 的以下各种中断中,需要硬件提供
3、中断类型号的只有_D_。8-14对于 8086 的软件中断,以下说法中正确的是_D_。8-15什么是中断向量什么是中断向量表8086的中断向量表存放在存储器的哪个区域?为什么 8086 中断向量表的大小是 1024 个字节?答:中断向量就是中断服务程序的入口地址。中断向量表存放中断服务程序的入口地址,或者存放跳转到中断服务程序入口的转移指令。8086 的中断向量表位于 RAM 区的 00000H003FFH。因为 8086 支持 256 个中断,每个中断服务程序的入口地址是 4 个字节,共需要 1024字节。8-16现在有 10 个外中断源要申请中断,都用软件查询来进行优先级排队,此时需要为这
4、些中断源准备几个中断服务程序为什么 答:只需要一个中断服务程序。10 个中断源通过一个或门向 CPU 申请中断。当有几个中断源同时申请时,在中断服务程序中进行排队查询。再转移到各自的服务程序段。并不需要为每个中断源准备一个服务程序。8-17如果8259A设置为非自动结束中断方式。但是,用户在编写中断服务程序时,没有向 8259A 发送中断结束命令 EOI。这样的做法会产生什么不好的后果?答:其结果是 8259 内部的中断服务寄存器中的相应的登记不会撤销。也就不会允许后续的同级中断的申请。而实际上 CPU 的服务已经结束,应该可以允许中断的申请。8-18执行以下指令后的结果有什么不同:MOV A
5、X,1234H MOV AX,1234H MOV BX,5678H MOV BX,5678H PUSH BX PUSH BX PUSH AX PUSH AX RET IRET 再进一步叙述 IRET 指令和 RET 指令有什么不同。答:执行左边一组指令后,IP=1234H。执行右边一组指令后,CS=5678H,IP=1234H。RET 指令一般是近调用返回,只将堆栈顶部内容弹出到 IP。IRET 指令一定是远调用的返回,要将栈顶 4 个字节弹出到 CS 和 IP。还会将自动压入的标志寄存器的内容出栈到标志寄存器。8-19 向 8259A 的 A0=1 的端口发送一个命令字,如何可以确定这个命令
6、字是初始化命令字 ICW2 而不是操作命令字 OCW1 答:要看前一个命令字是不是 ICW1。如果是 ICW1,则这个命令字是ICW2,否则就是OCW1。8-208259A 的初始化有几种不同的情况,分别使用在什么条件下?答:1)只使用 ICW1 和 ICW2:单片 8259,而且不使用 ICW4。2)使用 ICW1、ICW2 和 ICW3:多片 8259,但不使用 ICW4。3)使用 ICW1、ICW2 和 ICW4:单片 8259,但使用 ICW4。4)使用 ICW1、ICW2、ICW3 和 ICW4:多片 8259,也使用 ICW4。8-218259A 设置为非自动结束中断,级联使用 8
7、259A 时,主 8259A 的服务程序和从8259A 的服务程序,在发送中断结束命令方面有什么不同?答:主 8259 的服务程序要结束主 8259A 的 ISR 寄存器中的登记。从 8259 的服务程序要结束主 8259A 和从 8259 的 ISR 寄存器中的登记。8-22分析以下中断向量表写入程序:MOV AX,0 MOV ES,AX MOV BX,01C8H LEA AX,INTSUB MOV ES:BX,AX MOV AX,SEG INTSUB MOV ES:BX+2,AX 相应中断源的中断类型号是什么?请再用另外一种方式,完成这个中断向量表的写入程序。答:中断类型号是 72H。用
8、DOS 功能调用 25H 来写入:PUSH DS MOV AX,SEG INTSUB MOV DS,AX MOV DX,OFFSET INTSUB MOV AL,72H MOV AH,25H INT 21H POP DS 8-23以下的子程序 1 是中断初始化程序,子程序 2 是响应中断的中断服务程序。0A0H和 20H 都是 8259A 的端口地址。分析这些程序段,并回答问题:子程序 1:INT-P2 PROC FAR PUSH DS PUSH AX PUSH DX MOV DX,OFFSET INT-P1 MOV AX,SEG INT-P1 MOV DS,AX MOV AL,78H MOV
9、 AH,25H INT 21H POP DX POP AX POP DS RET INT-P2 ENDP 子程序 2:INT-P1 PROC FAR PUSH AX INC SI MOV AL,20H OUT 0A0H,AL OUT 20H,AL POP AX IRET INT-P1 ENDP 请问:(1)分配给这个中断的中断类型号是什么?(2)CPU 到中断向量表的哪四个地址单元取得入口地址?(3)中断源连接到 8259A 的哪个中断输入,是主 8259A 还是从 8259A (4)在该中断处理时能否实现中断嵌套为什么 答:(1)中断类型号是 78H。(2)占用中断向量表的地址是:001E0
10、H,001E1H,001E2H,001E3H。(3)连接到 8259A 的 IR0 输入,是从 8259A。(4)不能中断嵌套。因为再服务程序中,没有 STI 指令。8-24修改例 8-6 的中断服务子程序,使得它能够应用于 16 位除数的除法溢出中断。入口参数是 BX 作为除数,被除数是指令隐含的。出口参数应该包括 32 位的商和 16 位的余数。请自己指定具体的出口参数,并完成中断服务程序的编程。8-25编写一个 4 号溢出中断的服务程序,取代原来系统中的相应程序。新程序的功能是显示有关溢出的错误信息,然后,中止程序的执行。编写一个测试程序,测试新程序的功能。测试程序要完成中断向量表 4 号中断入口地址的改写,并通过具有溢出结果的运算来进行测试。答:(阅读程序)