微机原理与接口技术楼顺天编着课后第八章习题答案.docx

上传人:h**** 文档编号:1134584 上传时间:2018-12-11 格式:DOCX 页数:11 大小:163.22KB
下载 相关 举报
微机原理与接口技术楼顺天编着课后第八章习题答案.docx_第1页
第1页 / 共11页
微机原理与接口技术楼顺天编着课后第八章习题答案.docx_第2页
第2页 / 共11页
微机原理与接口技术楼顺天编着课后第八章习题答案.docx_第3页
第3页 / 共11页
微机原理与接口技术楼顺天编着课后第八章习题答案.docx_第4页
第4页 / 共11页
微机原理与接口技术楼顺天编着课后第八章习题答案.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、第 8 章 中断系统与可编程中断控制器 8259A1. 什么叫中断?8086 微机系统中有哪几种不同类型的中断?答:在 CPU 执行程序的过程中,由于某个事件的发生,CPU 暂停当前正在执行的程序,转去执行处理该事件的一个中断服务程序,待中断服务程序执行完成后,CPU 再返回到原被中断的程序继续执行。这个过程称为中断。8086 微机系统中有 3 种中断:1) 外部可屏蔽中断。2) 外部不可屏蔽中断。3) 内部中断2. 什么是中断类型?它有什么用处?答:通常用若干位二进制编码来给中断源编号,该编号称为中断类型号。8086 微处理器用 8 位二进制码表示一个中断类型,有 256 个不同的中断。这些

2、中断可以划分为内部中断、外部不可屏蔽中断、外部可屏蔽中断三类。用处:使 CPU 识别中断源,从而能正确地转向该中断源对应的中断服务程序入口。3. 什么是中断嵌套?使用中断嵌套有什么好处?对于可屏蔽中断,实现中断嵌套的条件是什么?答:微处理器在处理低级别中断的过程中,如果出现了级别高的中断请求,微处理器停止执行低级中断的处理程序而去优先处理高级中断,等高级中断处理完毕后,再接着执行低级的未处理完的程序,这种中断处理方式成为中断嵌套。使用中断嵌套的好处是能够提高中断响应的实时性。对于某些对实时性要求较高的操作,必须赋予较高的优先级和采取中断嵌套的方式,才能保证系统能够及时响应该中断请求。对于可屏蔽

3、中断,实现中断嵌套的条件有:(1)微处理器处于中断允许状态(IF=1)(2)中断请求的优先级高于正在执行的中断处理程序的优先级。 (3 )中断请求未被 8259屏蔽。 (4)没有不可屏蔽中断请求和总线请求。4. 什么是中断向量?中断类型号为 1FH 的中断向量为 2345H:1234H,画图说明它在中断向量表中的存放位置。答:中断向量为每个中断服务子程序的入口地址,为 32 位(16 位的偏移地址和 16 位的段地址) ,在中断向量表中占用 4 个地址单元。在 8086CPU 组成的计算机系统中,采用最低的 1024 个地址单元(称为 0 页)来存储中断向量。这 1024 个地址单元成为中断向

4、量表。因此,中断类型号位 1FH 的中断向量,在中断向量表中的存储位置为1FH4=07CH。中断类型号为 1FH 的中断向量在中断向量表中的存放位置如图 8.1 所示。图 8.1 中断类型号为 1FH 的中断向量在中断向量表中的存放位置5. 中断向量表的功能是什么?叙述 CPU 利用中断向量表转入中断服务程序的过程。答:中断向量表是用来存放中断向量的。是中断类型号与它对应的中断服务程序入口地址之间的换算表。1) CPU 获得中断类型号 n 后,将当前 PSW、CS 和 IP 的内容依次压入堆栈,保存断点的状态和断点地址,以便返回时恢复。2) 将 PSW 中的 IF 位和 TF 位清 0,关闭中

5、断。3) 把地址为 4n 和 4n+1 两个单元的 16 位数作为中断服务程序入口的偏移地址置入 IP,把地址为 4n+2 和 4n+3 两个单元的 16 位数作为中断服务程序入口的段地址置入 CS。4) 转入中断服务程序。6. 叙述可屏蔽中断的响应过程。答:在 IF 位为 1 情况下,从 INTR 端加入中断请求信号开始,到进入中断服务程序为止所经过的一系列操作,称为可屏蔽中断的响应过程。首先等待当前指令结束后,进入中断响应周期。然后,从微处理器外部的中断控制逻辑获得中断类型号。随后把当前的 PSW、CS 和 IP 的内容依次压入堆栈,接着清除 PSW 中的 IF 位和 TF 位为 0。最后

6、把中断服务程序的入口地址置入 IP 和 CS。至此,完成了可屏蔽中断的响应过程,开始进入中断服务程序。7. 简要叙述 8259A 内部 IRR、IMR、ISR 三个寄存器的作用。答:IRR:中断请求寄存器,用来锁存外部设备送来的 中断请求信号。当外部中70IR断请求线 有中断请求时,IRR 中与之对应的第 i 位被置 1。该寄存器内容可以被微处理IRi器读出。IMR:用于设置中断请求的屏蔽信号。此寄存器第 i 位被置 1 时,与之对应的外部中断请求线 被屏蔽,不能向微处理器发出 INT 信号。IiISR:用于记录当前正在被服务的所有中断级,包括尚未服务完而中途被更高优先级打断的中断级。若微处理

7、器响应了 中断请求,则 ISR 中与之对应的第 i 位置 1。中断处理IRi结束前,要用指令清除这一位。8. 中断控制器 8259A 的初始化编程是如何开始的?答:初始化编程就是指对 ICW(初始化命令字)的初始化,对 ICW 的初始化有一定的顺序,必须从 ICW1 开始。对中断控制器 8259A 的初始化编程次序如图 8.2 所示。初 始化I C W 1初 始化I C W 3初 始化I C W 2是 级联吗 ?I C 4 = 1 ?初 始化I C W 1YNYN地址A 0 = 0地址A 0 = 1地址A 0 = 1地址A 0 = 1图 8.2 对中断控制器 8259A 的初始化编程次序9.

8、设某微机系统需要管理 64 级中断,问组成该中断机构时需 片 8259A。解:一片 8259 可控制 8 级中断,第 1 片通过级联 8 片 8259 可将中断扩充至 64 级。所以组成该中断机构共需 9 片 8259。10. 完全嵌套的优先级排序方式的规则是什么?如何设置这种方式?答:在全嵌套方式下,中断优先级的级别是固定的,即 优先级最高, 逐0IRI16R级次之, 最低。如果对 8259A 进行初始化后没有设置其他优先级别,那么 8259A7IR就按全嵌套方式工作。11. 如果设备 D1、D2、D3 、 D4、D5 按完全嵌套优先级排列规则。设备 D1 的优先级最高,D5 最低。在下列中

9、断请求下,给出各设备的中断处理程序的次序(假设所有的中断处理程序开始后就有 STI 指令,并在中断返回之前发出结束命令)(1)设备 3 和 4 同时发出中断请求;(2)设备 3 和 4 同时发出中断请求,并在设备 3 的中断处理程序完成之前,设备 2 发出中断请求;(3)设备 1、3、5 同时发出中断请求,在设备 3 的中断处理程序完成之前,设备 2 发出中断请求。 解:(1) 设备 3 和 4 同时发出中断请求;中断处理次序为:D3D4,示意图如图 8.3(a)所示。主程序 D 3 服务程序 D 4 服务程序D 3 , D 4 同时请求S T I S T II R E TI R E TISR

10、3置1I S R 3 清零I S R 4 置 1I S R 4 清零图 8.3(a)设备 3 和 4 同时发出中断请求的中断处理程序的次序示意图(2) 设备 3 和 4 同时发出中断请求,并在设备 3 的中断处理程序完成之前,设备 2 发出中断请求;中断处理次序为: D3D2D3D4,示意图如图 8.3(b )所示。主程序 D 3 服务程序D 4 服务程序D 3 , D 4 同时请求S T IS T II R E TI R E TISR3置1I S R 3 清零I S R 4 置 1I S R 4 清零D 2 服务程序S T ID 2 请求ISR2置1I R E TI S R 2 清零图 8.

11、3(b)中断处理程序的次序示意图(3) 设备 1、3 、5 同时发出中断请求,在设备 3 的中断处理程序完成之前,设备 2 发出中断请求。 中断处理次序为:D1D3D2D3D5,示意图如图 8.3(c )所示。主程序 D 1 服务程序D 5 服务程序D 1 , D 3 , D 5同时请求S T IS T II R E TISR1置1I S R 1 清零ISR3置1D 3 服务程序S T II R E TI S R 3 清零D 2 请求S T ID 2 服务程序I S R 2 清零I R E TS T II S R 5 清零I R E TISR5置1图 8.3(c)中断处理程序的次序示意图12.

12、 8259A 是怎样进行中断优先权管理的?答:8259A 利用优先权处理器来识别和管理中断请求信号的优先级别。当几个中断请求信号同时出现时,优先权处理器根据控制逻辑规定的优先权级别和 IMR 的内容来判断这些请求信号的最高优先级。微处理器响应中断请求时,把优先权最高的 IRR 中的“1” 送入ISR.。当 8259A 正在为某一级中断服务时,若又出现新的中断请求,则由优先权处理器判断新出现的中断请求的级别是否高于正在处理的那一级。若是,则进入多重中断处理。13. 特殊全嵌套方式有什么特点?它的使用场合是什么?答:多片 8259 级联时,主片必须工作在特殊全嵌套方式下。假设从片工作在全嵌套方式下

13、,先后收到了两次中断请求,而且第二次中断请求有较高的优先级,那么该从片就会两次通过 INT 引脚向上一级申请中断。如果主片采用全嵌套方式,则它不会响应来自同一引脚的第二次中断请求。而采用特殊全嵌套方式后,就会响应该请求。14. 向 8259A 发送“中断结束”命令有什么作用?8259A 有哪几种中断结束方式?分析各自的利弊。答:向 8259A 发送“中断结束”命令,使相应的中断级在 ISR 中的相应位清“0” ,表示该中断处理已经结束。8259A 有自动中断结束方式(AEOI)和非自动中断结束方式(EOI) 。(1) 自动中断结束方式(AEOI) 。在这种方式下,系统一旦进入中断响应,8259

14、A 就在第二个中断响应周期 信号INTA的后沿,自动将 ISR 中被响应中断级的对应位清 “0”。这是一种最简单的中断结束处理方式,可以通过初始化命令来设定,但这种方式只能用在系统中只有一个 8259A,且多个中断不会嵌套的情况。(2) 非自动中断结束方式(EOI) 。在这种工作方式下,从中断服务程序返回前,必须在程序里向 8259A 输出一个中断结束命令(EOI) ,把 ISR 对应位清 “0”。具体做法有一般的中断结束方式和特殊的中断结束EOI 命令。这种方式可用于系统中有多个 8259A 或多个中断中有嵌套的情况,但这种方式要比自动中断结束方式复杂。而且在这种方式下,如果在程序里忘记了将

15、 ISR 对应位清零,那么,8259A 在一般情况下将不再响应这个中断以及比它级别低的中断请求。15. 初始化 8259A 时设置为非自动结束方式,则在中断服务程序即将结束时必须设置什么操作命令?不设置这种命令会发生什么现象?如果初始化时设置为自动结束方式时,还需要设置这种操作吗?答:必须发送中断结束命令,即向操作控制字 的 EOI 位写 1。如果不设置这种命令,2OCW则该中断服务程序结束后,CPU 将无法响应优先级比它低的中断请求以及它自身的下一次中断请求。若初始化为自动结束方式,则不需设置这种操作。16. 在哪些情况下需用 CLI 指令关中断?在哪些情况下需用 STI 指令开中断?答:

16、关于有前缀的指令,前缀包括段寄存器前缀(例如指令 MOV AX , CS:VAR) 、重复前缀(例如指令 REP MOVSB) 、和 LOCK 前缀。应明确的是,指令前缀并不是一个独立的指令,只是指令的一部分,所以不允许在前缀码和指令码之间响应中断,所以应在这条指令前置 CLI(关中断)指令,在这条指令后置 STI(开中断)指令。 对于目的地址是段寄存器的 MOV 和 POP 指令(除 CS 外) ,本条指令后不允许响应中断,而是还要执行一条指令结束后才能响应中断,这时可以在指令前加 CLI,指令后加 STI。 需要进行中断嵌套时,由于微处理器在响应中断时已将 IF 清零,所以一定要在中断处理

17、程序中加开中断指令,才有可能进行中断嵌套。17. 某系统中有两片 8259A,从片的请求信号连主片的 IR2 引脚,设备 A 中断请求信号连从片 IR5 引脚。说明设备 A 在一次 I/O 操作完成后通过两片 8259A 向 8086 申请中断,8086 微处理器通过两片 8259A 响应中断,进入设备 A 的中断服务程序,发送中断结束命令,返回断点的全过程。答:设备 A 在一次 I/O 操作完成后在 8259A 从片中断请求输入端 IR5 上产生中断请求,中断请求被锁存在 8259A 从片 IRR 中,并经 IMR“屏蔽” ,其结果送给优先权电路判优。控制逻辑接收中断请求,向 8259A 主

18、片 IR2 引脚输出 INT 信号,中断请求被锁存在 8259A 主片 IRR 中,并经 IMR“屏蔽” ,其结果送给优先权电路判优。控制逻辑接收中断请求,向CPU 输出 INT 信号。CPU 从 INTR 引脚接受 8259A 主片的 INT 信号,进入连续两个周期。优先权电路设置 ISR 中的对应位,在收到第一个 信号后, 8259A 主片把INTA INTA当前申请中断的 8259A 从片的 ID 代码 010,通过 CAS0CAS2 送到相应的 8259A 从片。相应地 8259A 从片在收到第二个 信号时,将中断类型号 N 送到数据线上。INTA8086CPU 获得中断类型号 N 后

19、,在 N4 和 N4+2 对应的中断向量表单元获取中断向量分别置入 IP 和 CS,从此进入设备 A 的中断服务程序。在中断服务程序结束前(即执行 IRET 指令前) ,应分别向从片 8259 和主片 8259 发送EOI 中断结束命令,然后执行 IRET 指令,返回断点。18. 某 8086 系统用 3 片 8259A 级联构成中断系统,主片中断类型号从 10H 开始。从片的中断申请连主片的 IR4 和 IR6 引脚,它们的中断类型号分别从 20H、30H 开始。主、从片均采用上升沿触发,非自动中断结束方式。且主片采用特殊全嵌套方式,从片采用完全嵌套方式。请编写他们的初始化程序。答:设 82

20、59A 主片的端口地址为 20H(A0=0)和 21H(A1=1),第一个 8259A 从片的端口地址为 50H(A0=0)和 51H(A1=1),第二个 8259A 从片的端口地址为 0A0H(A0=0)和 0A1H(A1=1),初始化程序如下:主片: MOV AL,00010001B; :边沿触发,级联1ICWOUT 20H,ALMOV AL,00010000B; :中断类型号 10H17H2IOUT 21H,ALMOV AL,01010000B; : 和 连有从片3IC4R6IOUT 21H,ALMOV AL,00010001B; :特殊全嵌套,非缓冲,非自动中断结束4IWOUT 21H

21、,AL从片 1:MOV AL,00010001B; :边沿触发,级联1ICOUT 50H,ALMOV AL,00100000B; :中断类型号 20H27H2IWOUT 51H,ALMOV AL,00000100B; :INT 引脚连主片3IC4IROUT 51H,ALMOV AL,00000001B; :完全嵌套,非缓冲,非自动中断结束4IOUT 51H,AL从片二:MOV AL,00010001B; :边沿触发,级联1ICWOUT 0A0H,ALMOV AL,00110000B; :中断类型号 30H37H2IOUT 0A1H,ALMOV AL,00000110B; :INT 引脚连主片3

22、ICW6IROUT 0A1H,ALMOV AL,00000001B; :完全嵌套,非缓冲,非自动中断结束4IOUT 0A1H,AL19. 设 8259A 的端口地址为 50H (A0=0) 和 51H (A1=1),请给下面的 8259A 初始化程序加上注释,说明各命令字的含义。MOV AL, 13HOUT 50H, ALMOV AL, 08HOUT 51H, ALMOV AL, 0BHOUT 51H, AL解:MOV AL, 13HOUT 50H, AL ;初始化 ,设置为边沿触发,单片工作1ICWMOV AL, 08HOUT 51H, AL; ;中断类型号的高 5 位为 00001B,即中断类型号为2I08H0FHMOV AL, 0BHOUT 51H, AL ; 初始化 ,一般全嵌套缓冲方式,中断非自动结束4ICW20. 设 8259A 端口地址为 20H 和 21H,怎样发送清除 ISR3 的命令?答:8259A 可通过设置操作控制字 发送中断结束命令(EOI 命令) ,来清除 ISR 的指定位。 的值为 23H, 用低位端口地址(即 A0=0)进行操作,因此可编程如下:MOV AL,23HMOV 20H,AL21. 根据中断过程的要求设计的一个中断系统,大致需要考虑哪些问题?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。