失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 微机原理——8086中断类型以及中断向量表 中断响应 中断返回

微机原理——8086中断类型以及中断向量表 中断响应 中断返回

时间:2019-11-05 17:23:54

相关推荐

微机原理——8086中断类型以及中断向量表 中断响应 中断返回

博主联系方式:

QQ:1540984562

QQ交流群:89501

群里会有往届的smarters和电赛选手,群里也会不时分享一些有用的资料,有问题可以在群里多问问。

目录

先验知识回顾控制寄存器回顾 1、8086中断类型1、外部可屏蔽中断2、外部不可屏蔽中断3、除法错中断4、单步中断5、断点中断6、溢出中断7、软中断 2、8086中断向量表3、8086中断响应1、外部可屏蔽中断响应2、外部不可屏蔽中断响应3、内部中断响应 4、8086中断返回

先验知识回顾

控制寄存器回顾

PSW是Program Status Word的缩写,即程序状态字(也叫程序状态寄存器)

CS:段代码寄存器。

1、8086中断类型

8086用8位二进制码表示一个中断类型,共有256个中断,可分为两大类:

中断结构:

1、外部可屏蔽中断

由INTR引入,受到标志寄存器中的中断允许标志位IF控制。

IF=0:CPU不响应INTR中断;

IF=1:CPU响应INTR中断;

INTR中断的类型码范围:8~255;

2、外部不可屏蔽中断

由NMI引入,不受到中断允许寄存器标志位IF控制。

NMI信号有效,且8086现行指令执行结束,且没有DMA请求:响应NMI中断

NMI中断类型码:2

3、除法错中断

在执行DIV或者IDIV指令时,除数为0或商超过寄存器能够表达的范围(商溢出):执行中断。

中断类型号:0.

(我寻思着,在做除法操作的时候就可以避免这种现象的存在,没有必要搞个中断啊。。。)

4、单步中断

受到标志位寄存器中的陷阱标志位TF控制。

TF=1:CPU每执行完一条指令就引起一个内部中断。

TF=0:无

中断类型号:1

用途:用于实现但不操作,是一种强有力的调试手段。(联系debug中相关操作)

5、断点中断

由INT3指令产生的内部中断。

在程序调试过程中,需要跟踪程序走向,了解程序执行过程中的中间结果时,可以用INT3指令临时替代原有的指令,称为设置断点。

中断类型号:3

6、溢出中断

受到标志寄存器中的溢出标志位OF控制。

若上条指令执行结果使OF=1,则产生中断。

中断类型号:4

7、软中断

由INTn指令产生。

中断类型码:n

2、8086中断向量表

两个知识点:

中断向量:中断指针,是中断服务程序的入口地址

中断向量表:中断类型号与对应的中断服务函数入口地址的换算表。

8086的中断向量表如下:

3、8086中断响应

1、外部可屏蔽中断响应

1、等待当前指令结束,然后进入中断响应周期。

2、CPU获取中断类型号

3、当前的PSW、CS、IP的内容依次压入栈中。(保存了断点的状态和断点地址,以便返回时恢复)

4、清除PSW中的IF位和TF位。(IF=0意味着关中断,这里不包含中断嵌套)

5、把中断服务函数的入口地址置入IP和CS

6、完成响应,进入中断服务函数

2、外部不可屏蔽中断响应

中断请求在NMI端加入。

等待当前指令执行结束.如果同时出现非屏蔽和可屏蔽中断请求,CPU优先响应非可屏蔽。

中断类型号由硬件决定,不需要从外部获取。其他操作与可屏蔽中断相同

3、内部中断响应

内部中断的响应操作的共同特点:

1、中断类型号来源于:指令码、CPU硬件,不需要从外部获取

2、没有INTA’信号的响应周期

3、不受到IF位的控制,但单步中断受TF位控制

4、除单步中断之外,其他内部中断都比外部中断优先响应

5、同样执行可屏蔽中断的3、4、5操作

特别说明:

中断响应时应清除TF标志位意味着什么?

TF=1,没执行完一条指令都引起一次单步中断。如果不清除,将不停地引起中断,每次中断都执行同一条指令而不能反悔。

所以,中断服务函数期间TF=0,等到IRET指令恢复PSW值是,才恢复TF位。

4、8086中断返回

无论内部外部中断,中断返回都是由中断服务函数的末尾设置IRET指令实现的。

IRET指令的操作是:恢复断点处的地址和PSW内容:依次从堆栈中弹出保存的IP、CS、PSW值,使被中断的程序继续执行

参考书籍:

《微机原理与接口技术》

如果觉得《微机原理——8086中断类型以及中断向量表 中断响应 中断返回》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。