中断的基本概念

news/2025/9/25 15:01:48/文章来源:https://www.cnblogs.com/jimGraymane/p/19111236

在计算机执行程序的过程中,出现某些需要紧急处理的特殊情况或者特殊请求,cpu暂时终止现行程序。而转去对这些特殊情况处理,处理完毕后在返回到原程序的断点处。

工作流程

1.中断请求

中断源向cpu发送中断请求信号

2.中断响应

相应中断的条件,中断判优:多个中断源同时提出请求时,通过中断判优六级响应一个中断源

3.中断处理

中断隐指令;中断服务程序

关中断

如果程序处于【关中断】状态,就说明程序不会响应任何一个中断请求信号

【关中断】IF(Interrupt Flag)存在psw中

当IF=1表示开中断(允许中断)

当IF=0表示关中断(不允许中断)

当然还有一些是不可被关中断的信号

非屏蔽中断

关中断时也会响应(掉电)在强制关机,检测到掉电的时候,计算机就会自动记录当前的状态,这是不会被屏蔽的

可屏蔽中断

关中断时不会响应

中断请求标记

需要一个中断请求标记寄存器

中断判优-实现

软件实现

查询程序,通过软件实现较慢

硬件实现

硬件排队器,硬件实现较快

中断判优-优先级设置

1.硬件故障中断属于最高级,其次是软件中断

2.非屏蔽中断优于可屏蔽中断

3.DMA请求优于IO设备传送

4.高速设备优于低速设备

5.输入设备优于输出设备

6.实时设备优于普通设备

中断处理过程-中断隐指令

1.中断的事件导致了pc值会发生改变,让原本指向K的pc指向中断服务程序的入口

2.等中断事件处理完之后,中断服务程序把原本的值K+1放回到pc

1.关中断

再中断服务程序中,为了保护中断现场期间不被新的中断所打断,必须关中断,从而保证被中断的程序再中断服务程序执行完毕之后,能接着正确执行下去

2.保存断点

为了保证再中断服务程序执行完毕后能正确返回到原来的程序,必须将原来执行的程序的断点(pc)值保存起来,可以存入堆栈,也可以存入指定单元

3.引出中断服务程序

引出中断服务程序的实质,就是取出中断服务程序的入口地址,并传送给PC

中断处理过程-确定起始地址

确定起始地址有两种方法

软件查询法

硬件向量法(重点)

1.给每个中断请求编号 这个编号对应的指令JMP 200(无条件跳转)

我们把这个跳过去的地址200称为中断向量

硬件(中断向量地址形成部件)产生向量地址(中断类型号)。再由向量地址找到入口地址

中断处理过程-中断服务程序

1.保护现场

保护通用寄存器的喝状态寄存器的内容(acc存储器的值),疑返回原程序后可以恢复cpu环境,可使用堆栈,也可以使用特定存储单元

2.中断服务

主体部分,通过程序控制需打印的字符代码送入打印机的缓冲存储器(中断服务有可能会修改acc寄存器的值)

3.恢复现场

通过出栈指令或者取数指令把之前保存的信息送回寄存器中(把原程序算到一半的ACC恢复原样)

4.中断返回

通过中断返回指令,返回到原程序断点处

前面学的这些,我们称为单重中断:执行中断服务程序时不响应新的中断请求。

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

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

相关文章

郑州市科协网站做农村电子商务的网站有哪些内容

LANMP简介 LANMP是指一组通常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。 L:指Linux,一类Unix计算机操作…

AT_arc173_e [ARC173E] Rearrange and Adjacent XOR

好家伙,标签一出来给我假完了。 刚开始以为是拆位对于每一位的每一层去做贪心,结果发现假了。 有一个很显然的性质是,答案一定由原序列若干个数异或得到,现在我们需要观察这些数有什么性质。 我们再仔细一想,如果…

修复gradle8使用Transform第一个构建中断第二次构建失败的问题:java.io.IOException: Unable to delete directory xxxx\build

问题描述 使用了gradle编译插件,编译插件使用的是Transform处理字节码,如果第一次ctrl+c中断或者其它原因中断,下次再次构建会出现build文件夹清理不了的问题 Execution failed for task :my-module:my-submodule:c…

.NET操作Word/WPS打造专业文档 - 页面设置与打印控制完全指南

本文将详细介绍如何使用MudTools.OfficeInterop.Word库来设置页面参数、管理页眉页脚以及控制文档打印。我们将深入探讨从基础的纸张设置到高级的分节页面控制,从简单的页眉页脚到复杂的多区域布局,以及如何精确控制…

NORDIC蓝牙6.0新品NRF54L15多协议超低功耗高性能BLE芯片 - 动能世纪

NRF54L15,NRF54L10,NRF54L05 是NORDIC推出的高性能,多协议,低功耗BLE6.0芯片 产品简介 增强的多协议支持nRF54L 系列支持低功耗蓝牙、蓝牙 Mesh、Thread、Matter、Zigbee、Amazon Sidewalk 和 2.4 GHz 专有协议,并…

记录:git、.${index}. 滚动条

解决问题:从底层找,从最开始的位置打日志,一步步节点去找问题发生的位置 记录、统计:各环境账号。。。上线:需要准备的资源、账号、人员 去掉debugger 1、提交代码;2、dev,fat,本地各种自测;3、new tag,改动…

快速入门HarmonyOS应用开发(三) - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Docker + IDEA 一键部署! - 实践

Docker + IDEA 一键部署! - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

使用springboot开发一个宿舍管理系统练习项目 - 实践

使用springboot开发一个宿舍管理系统练习项目 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&quo…

有做兼职赚钱的网站吗12315可以查询营业执照吗

本文小编给大家分享的是腾讯视频下载的视频怎么导出来_手机腾讯视频怎么缓存视频电影。相比其它的视频客户端,腾讯视频的多维度筛选,大数据比对,更有利于用户发现和推荐自己喜爱的影视剧内容。腾讯视频播放器推荐精准,越用越懂你&…

seo网站制作网站专题报道页面怎么做的

最近开始阅读java底层的源码,是因为发现越到后面越发现读源码的重要性,真的很重要,不阅读源码,你会发现“路”越走越窄。 今天看到了String的这个构造方法, /*** Initializes a newly created {code String} object so…

深圳有做网站公司wordpress onethink

可以放在服务器上,对服务器上的文件进行浏览、上传、下载,可下载文件源码。把下所有代码入在一个文件里即可,文件的后缀要为asp。thedir request("thedir")if thedir "" thenfolderini server.mappath(".")…

云南省城乡住房与建设厅网站教育网站建设情况报告

在官网可编辑表格typescript样例里 const inputRef useRef<InputRef>(null); InputRef项目报错原因是ant design的版本问题! antd 4.19版本重写了input 可通过InputRef来使用input组件的ref

CF1542

简单题/简单题/简单计数题/中等计数题/优化计数题CF1542E2 Abnormal Permutation Pairs 既然要求了字典序,那么我们可以枚举两个排列的最长公共前缀长度 \(L\) 并钦定 \(p_{L+1}<q_{L+1}\),此时 \(L+1\) 之后的位…

Manim实现涟漪扩散特效

在视频制作和数据可视化领域,涟漪扩散特效是一种常见且富有视觉吸引力的动画效果。 本文将详细介绍如何使用Manim数学动画引擎来实现这一效果,包括其实现原理、使用示例以及应用场景。 1. 实现原理 涟漪扩散特效主要…

CRMEB标准版PHP移动订单功能深度解析:多端同步方案

添加的客服进移动端个人中心统计管理里面就可以管理订单 Git仓库:https://gitee.com/ZhongBangKeJi/CRMEB

PolarFire SOC Auto Update 和 IAP 文档阅读(四) IAP

PolarFire SOC Auto Update 和 IAP 文档阅读(四) IAP 文档来自:PolarFire FPGA and PolarFire SoC FPGA Programming User GuidePolarFire SOC Auto Update 和 IAP 文档阅读一 - 所长 - 博客园 PolarFire SOC Auto Up…

CICD流程建设之持续测试实践指南

本文来自腾讯蓝鲸智云社区用户: CanWay持续测试(CT)是在软件开发周期(SDLC)期间持续检查软件质量的过程。具体指每次更改代码时定期执行的自动化测试。持续测试可及早发现并修复问题,确保软件始终准备就绪并运行良…

wordpress文章添加按钮seo检查工具

目录 项目名称&#xff1a; 项目背景&#xff1a; 项目目标&#xff1a; 项目成果&#xff1a; 经验教训及学习&#xff1a; 未来优化&#xff1a; 项目名称&#xff1a; 数字华容道小游戏 项目背景&#xff1a; 在学习编程过程中&#xff0c;为了加强特性技术和对概念…

Xcode 26.0.1 (17A400) 发布 - Apple 平台 IDE

Xcode 26.0.1 (17A400) 发布 - Apple 平台 IDEXcode 26.0.1 (17A400) 发布 - Apple 平台 IDE IDE for iOS/iPadOS/macOS/watchOS/tvOS/visonOS 请访问原文链接:https://sysin.org/blog/apple-xcode-26/ 查看最新版。原…