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

博主联系方式:
QQ:1540984562
QQ交流群:892023501
群里会有往届的smarters和电赛选手,群里也会不时分享一些有用的资料,有问题可以在群里多问问。

目录

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

先验知识回顾

控制寄存器回顾

1
PSW是Program Status Word的缩写,即程序状态字(也叫程序状态寄存器)
CS:段代码寄存器。

1、8086中断类型

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

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的中断向量表如下:
1

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值,使被中断的程序继续执行


参考书籍:

《微机原理与接口技术》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/378580.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

著名开源项目_著名开源项目案例研究

著名开源项目维基百科 (Wikipedia) Wikipedia is no less than an encyclopedia available free of cost to the public nowadays. If you want to write a passage, know about some famous person or thing you are just one click away from your desired article. 维基百科…

资料整理-工具篇

* 代码利器 Resharper 作为一个C#er,非常感谢有Resharper这样的代码利器。在VS系列的IDE中,使用Resharper后,你会发现,原来写代码也可以是一种享受! 1. 首先,下载Resharper。下载地址:http://ww…

企业级php第三方支付平台,ThinkPHP新版企业级php第三方api第四方支付平台程序源码商业版 带接口文件等 某宝售价3000元...

本帖最后由 商业源码网 于 2017-12-21 11:23 编辑7 h$ . , C u0 R3 R y$ z! ] q( D D$ s( Y源码说明:) G: y; R# G0 0 g N. ; \0 w, A9 {5 # P今天黑锐给大家分享给好东西!很不错的支付系统!喜欢研究支付接口的朋友别错过!ThinkP…

C++---两数之和

【问题描述】 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 【输入形…

C++语法:构造函数以及析构函数

目录定义主要特点C的构造函数定义格式示例1:不带参数的构造函数示例2:带参数的构造函数示例3:使用初始化列表来初始化字段类的析构函数定义 构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成…

大学各系男生追MM的专业短信

环卫系 天气预报:今天凌晨到白天有时有想你,下午转大到暴想,预计心情将由此降低五度。受延长低气压带影响,预计此类天气将持续到见到你为止。 历史系 据说最早的爱情诗是这样写的:你来自云南元谋,我来自北京…

scala中命名参数函数_Scala中带有命名参数的函数

scala中命名参数函数具有命名参数的函数 (Functions with named arguments ) A function is Scala can take multiple arguments. These arguments are traditionally called in sequence while calling a function. But in Scala programming, the program is given the power…

【IT笔试面试题整理】 二叉树任意两个节点间最大距离

求一个二叉树中任意两个节点间的最大距离,两个节点的距离的定义是这两个节点间边的个数, 比如某个孩子节点和父节点间的距离是1,和相邻兄弟节点间的距离是2,优化时间空间复杂度。 一种是:经过根节点,此时只…

请问染色浴比对染色性能有影响吗?浴比对染色的哪些性能有影响?染色亲和力测定有哪些实际应用意义

2.6 染色热力学参数 染色热、染色熵测定方法 请问染色浴比对染色性能有影响吗?浴比对染色的哪些性能有影响?染色亲和力测定有哪些实际应用意义? 答:浴比,又称液比。指纺织品与染液等的重量比例,即被染物重…

php排序地区,怎么在php项目中实现一个地区分类排序算法

怎么在php项目中实现一个地区分类排序算法发布时间:2020-12-30 16:11:30来源:亿速云阅读:86作者:Leah怎么在php项目中实现一个地区分类排序算法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的…

OpenCV实战【2】HOG+SVM实现行人检测

目录HOG是什么?HOG vs SIFTHOG步骤HOG在检测行人中的方式Opencv实现HOGDescriptor的构造函数:行人检测HOGSVM步骤简化版的HOG计算HOG是什么? 方向梯度直方图( Histogram of Oriented Gradient, HOG )特征是一种在计算机视觉和图像处理中用来进…

wchar_t 和 char

#include <windows.h> #include <stdio.h> //function: charTowchar //purpose:char to WCHAR 、wchar_t、LPWSTR etc void charTowchar(const char *chr, wchar_t *wchar, int size) { MultiByteToWideChar( CP_ACP, 0, chr, strlen(chr)…

坐标转换 计算机图形学_计算机图形学的转换类型

坐标转换 计算机图形学什么是转型&#xff1f; (What is Transformation?) Transformation refers to the mathematical operations or rules that are applied on a graphical image consisting of the number of lines, circles, and ellipses to change its size, shape, o…

win2003 IIS6配置PHP 5.3.3(fastCGI方式+eAccelerator)+ASP.NET 4.0(MVC3)

win2003 IIS6配置PHP 5.3.3(fastCGI方式eAccelerator)ASP.NET 4.0(MVC3) 直入正题。 这个环境的部署很有讲究&#xff0c;折腾了一天&#xff0c;大概说一下思路&#xff1a; 自从哪个PHP的版本开始&#xff08;5.2也不知道多少&#xff09;&#xff0c;就分了thread-safe版和n…

03-图像特效

一、灰度处理 方法一&#xff1a;imread方法 彩色图的颜色通道为3&#xff0c;即RGB&#xff1b;而灰度图只有一个颜色通道。 import cv2 img0 cv2.imread(E:\Jupyter_workspace\study\data/cat.png,0) img1 cv2.imread(E:\Jupyter_workspace\study\data/cat.png,1) print…

解析linux根文件系统的挂载过程

------------------------------------------ 本文系本站原创,欢迎转载!转载请注明出处:http://ericxiao.cublog.cn/------------------------------------------ 一&#xff1a;前言前段时间在编译kernel的时候发现rootfs挂载不上。相同的root选项设置旧版的image却可以。为了…

SIFT讲解(SIFT的特征点选取以及描述是重点)

目录SIFT是什么&#xff1f;尺度空间理论SIFT特征点提取SIFT特征点描述SIFT是什么&#xff1f; SIFT ,即尺度不变特征变换( Scale-invariant feature transform&#xff0c;SIFT) ,一种特征描述方法。具有 尺度鲁棒性 旋转鲁棒性 光照鲁棒性 SIFT本身包括了特征点筛选及特征点…

操作系统多线程实现_操作系统中的线程实现

操作系统多线程实现Each process has an address space. There is one thread of control in every traditional OS. Sometimes, it is viable to have multiple threads of control in the similar address space which is running in quasi-parallel. Though they were separ…

mysql怎么消除冗余,mysql剔除冗余数据

mysql删除冗余数据-- -- 1. 查询冗余数据SELECT t.id FROM t_lifeservice_orders t WHERE t.orderStatus 2 GROUP BY t.channelCode, t.orderNum, t.orderStatus HAVING COUNT(t.orderStatus) > 1;-- -- 2. 定义删除冗余数据存储过程DROP PROCEDURE IF EXISTS proc_delete_…

04-图像的形状绘制

一、线段绘制 cv2.line(dst,(100,100),(400,400),(0,0,255),2,cv2.LINE_AA) 参数一&#xff1a;目标图片数据 参数二&#xff1a;当前线段绘制的起始位置&#xff08;也就是两点确定一条直线&#xff09; 参数三&#xff1a;当前线段绘制的终止位置&#xff08;也就是两点确定…