首页 > 编程知识 正文

微机原理课程设计基于8086实例,微机原理中断向量表结构优缺点

时间:2023-05-05 11:02:59 阅读:136953 作者:1504

博客联系人:

QQ:1540984562

wechat:wxid_NZ49532kbh9u22

QQ交流群: 892023501 (嵌入式方向) ) ) ) )。

QQ交流群: 856398158 (后端方向)

先验知识审核控制寄存器审核1,8086中断类型1、外部可屏蔽中断2、外部不可屏蔽中断3、除法错误中断4、单步中断5、断点中断6、溢出中断7、软中断7

先验知识评审控制寄存器评审

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值恢复为yes之前,TF位不会恢复。

4、8086中断返回无论内部外部中断,中断返回都是通过在中断服务函数的末尾设置IRET指令实现的。

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

参考书籍:

《微机原理与接口技术》

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。