习题8-中断控制器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题八中断控制器

8.1 8088/8086CPU管理有哪些中断源?各种中断的产生条件是什么?

【答】NMI中断和INTR中断。INTR中断产生的条件是:无总线请求、FR.IF=1、CPU执行完当前指令。

8.2 8088/8086中断向量表的作用是什么?

【答】中断向量是中断服务程序的入口地址。将所有中断向量集中放在一起,形成中断向量表。

8086系统有256个类型的中断源。每个类型对应一个中断向量,一个中断向量由四个字节组成:2个高地址字节:存放中断服务程序的代码段的段值;2个低地址字节:存放中断服务程序的偏移地址。中断向量表放在内存的地段地址0单元开始的单

元:00000H~03FFFH。

8.3 什么叫中断向量?它放在哪里?对应于1CH的中断向量在哪里?如1CH中断程序从

5110H:2030H开始,则中断向量应怎样存放?

【答】中断向量是中断处理子程序的入口地址,它放在中断向量表中,由1ch*4=70h知中断向量存放在0000:0070处。由于中断处理入口地址为5110:2030所以0070H,0071H,0072H,0073H 这四个单元的值分别为30H,20H,10H,51H。

8.4 叙述可屏蔽中断的响应过程,一个可屏蔽中断或者非屏蔽中断响应后,堆栈顶部四个单元

中是什么内容?

【答】当CPU在INTR引脚上接受一个高电平的中断请求信号并且当前的中断允许标志为1,CPU 就会在当前指令执行完后开始响应外部的中断请求,具体如下:

1、从数据总线上读取外设送来的中断类型码,将其存入内部暂存器中;

2、将标志寄存器的值推入堆栈;

3、将标志寄存器中IF 和TF清零;

4、将断点保护到堆栈中;

5、根据中断类型获取中断向量转入中断处理子程序;

6、处理完后恢复现场。

响应后堆栈的顶部4个单元是IP,CS。

8.5 从8086/8088的中断向量表中可以看到,如果一个用户想定义某个中断,应该选择在什么

范围?

【答】从8086/8088的中断向量表中可以看出,如果一个用户想定义一个中断,应该选择中断类型60H-6FH,其中断向量在中断向量表的0180H-01BFH。

8.6 非屏蔽中断处理程序的入口地址怎样寻找?

【答】非屏蔽对应类型2,它位于中断向量表0000:0008H-0000:000BH处,4个单元的值即为非屏蔽中断处理程序的入口地址:08H、09H放偏移量,0AH、0BH放段地址。

8.7 类型号为20H的中断服务程序入口符号地址为INT-5,试写出中断向量的装入程序片断。【答】中断向量的地址:20H×4=001 0 00 0000=80H

中断向量的装入参考程序:

CLI

PUSH DS

XOR AX,AX

MOV DS,AX

MOV AX,OFFSET INT-5

MOV WORD PTR [080H],AX

MOV AX,SEG INT-5

MOV WORD PTR [082H],AX

POP DS

STI……

INT-5 PROC NEAR

…….

IRET

INT-5 ENDP

8.8 8259A中 IRR、IMR和 ISR三个寄存器的作用是什么?

【答】中断请求寄存器IRR:保存对应位的中断请求

中断屏蔽寄存器IMR:屏蔽对应位的中断请求;

中断服务寄存器ISR:保存当前正在服务的中断申请。

8.9 填空:某时刻8259A的IRR内容是08H(00001000B),说明(_IR3引脚有中断请求_)。某时

刻8259A的ISR内容是08H,说明(_IR3引脚的中断请求正在服务_)。在两片8259A级连

的中断电路中,主片的第5级IR5 作为从片的中断请求输入,则初始化主、从片时,ICW3的控制字分别是(00100000和00000101)。

8.10 8529A仅占用两个I/O地址,它是如何区别4条ICW命令和3条OCW命令的?在地址引脚

A0=l时读出的是什么?

【答】A0=0写ICW1、OCW2、OCW3,以其特征位区分。

A0=1写ICW2、ICW3、ICW4、OCW1,写ICW1后顺序写的是ICW2、ICW3、ICW4。

A0=0读IRR、ISR、轮询字,由OCW3的RR和RIS两位区分IRR和ISR,通过OCW3的P位向8259发轮询命令后读出的是轮询字。

A0=1时,读IMR。

8.11 一个可屏蔽中断请求来到时,通常只要中断允许标志为1,便可在执行完当前指令后响应,

在哪些情况下有例外?

【答】如果发出中断请求信号时,正好碰到CPU执行封锁指令,由于CPU 封锁指令和下一条指令合在一起看成一个整体,所以必须等到下一条指令执行完后才响应中断。如果是执行往寄存器传送数据指令,那一定要等下一条指令执行完后,才允许中断。无总线请求;CPU 执行完当前指令。

8.12 一个可屏蔽中断响应时,CPU要执行哪些读/写周期?对一个软件中断又如何?

【答】当一个可屏蔽中断被响应时,cpu实际执行的总线时序如下:

第一步:执行2个中断响应总线周期,之间用2至3个空闲状态搁开。被响应的外设接口在第二个中断响应总线周期中通过低8位数据线送回一个字节的中断类型码。cpu接收中断类型码,将它左移两位后,成为中断向的起始地址,存人暂存寄存器。

第二步:执行一个总线写周期,把标志寄存器的值推入堆栈。

第三步:中断允许标志IF 和单步标志TF置成0,禁止了中断响应过程中有其他可屏蔽中断进入,还禁止了中断处理过程中出现单步中断。

第四步:执行一个总线写周期,在这个周期内,将CS的内容推入堆栈。

第五步:执行一个总线写周期,在这个周期内,将IP的内容推入堆栈。

第六步:执行一个总线读周期,在这个周期内,把中断向量前两个字节作为中断处理子程序入口地址的偏移量送到IP寄存器中。

第七步:执行一个总线读周期,在这个周期中,把中断向量后两个字节作为中断子程序入口地址的段值送到CS寄存器中。

如果是可屏蔽中断或者软中断,则跳过第一步,而从第二步开始按次序执行到第七步。

8.13 软件中断有哪些特点?在中断处理子程序和主程序的关系上,软件中断和硬件中断有什么

不同之处?

【答】(1)软件中断用一条指令进入中断处理子程序,中断类型码由指令提供。进入中断时,不需要执行中断响应总线周期,也不从数据总线读取中断类型码。不受中断允许标志IF的影响。不过,软件中断的一号中断受标志寄存器中另外一个标志既TF的影响,只有TF为1时,才能执行单步中断。

(2)正在执行软件中断时,如果有外部硬件中断请求,并且是非屏蔽中断请求,那么,会在执行完当前指令后立即给予响应。

(3)软中断没有随机性。

8.14 8259A的ICW2设置了中断类型码的哪几位?说明对8259A分别设置ICW2为30H、38H、36H

有什么差别?

【答】8259A的ICW2设置了中断类型为D7-D3位。30H和36H对应的高五位为:00110,表示的中断类型码相同;而38H的高五位为:00111,与前面的两者不同

8.15 试按照如下要求对8259A设置初始化命令字:系统中有一片8259A,中断请求信号用边沿

触发方式,下面要用ICW4,中断类型码为60H、61H、62H……67H,用特殊全嵌套方式,不用缓冲方式,采用中断自动结束方式。8259A的端口地址为96H、94H。

【答】初始化命令字的过程:

MOV AL,13H

OUI 94H,AL ;设置ICW1

MOV AL,60H

OUT 96H,AL ;设置ICW2

MOV AL,13H

OUT 96H,AL ;设置ICW4

8.16 怎样用8259A的屏蔽命令字来禁止IR3和IR5引腿上的请求?又怎样撤消这一禁止命令?

设8259A的端口地址为93H、94H。

【答】从8259A的奇地址端口(93H)进行设置来禁止IR3和IR5引腿上的请求,如下:IN AL,93H ;读取屏蔽寄存器OCW1中的数据

OR AL,28H ;将IR3和IR5中对应位置1

相关文档
最新文档