当前位置: 首页 > news >正文

中断的基本概念

在计算机执行程序的过程中,出现某些需要紧急处理的特殊情况或者特殊请求,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.hskmm.com/?act=detail&tid=16975

相关文章:

  • AT_arc173_e [ARC173E] Rearrange and Adjacent XOR
  • 修复gradle8使用Transform第一个构建中断第二次构建失败的问题:java.io.IOException: Unable to delete directory xxxx\build
  • .NET操作Word/WPS打造专业文档 - 页面设置与打印控制完全指南
  • NORDIC蓝牙6.0新品NRF54L15多协议超低功耗高性能BLE芯片 - 动能世纪
  • 记录:git、.${index}. 滚动条
  • 使用springboot开发一个宿舍管理系统练习项目 - 实践
  • 元组
  • CF1542
  • Manim实现涟漪扩散特效
  • CRMEB标准版PHP移动订单功能深度解析:多端同步方案
  • CICD流程建设之持续测试实践指南
  • Xcode 26.0.1 (17A400) 发布 - Apple 平台 IDE
  • Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
  • CNN+MNIST - 实践
  • SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
  • 超快轻量级离线翻译服务器MTranServer在腾讯云轻量应用服务器上的全流程部署指南 - 实践
  • 微算法科技(NASDAQ: MLGO)利用高级 Blowfish 加密标准实现区块链集成信息共享
  • 专业讲解大模型登记(纯干货)
  • Docker常用命令速查
  • 离线安装docker
  • MX 练石 2025 NOIP #9
  • dockerfile
  • PostgreSQL 的索引Ooracle、Mysql索引的类型对比和说明
  • Docker打包CMake项目镜像操作步骤
  • Linux dmesg 内核日志查看工具详解
  • 【智慧】 gym104385
  • __repr__魔术方法
  • 基于萤火虫算法(FA)优化支持向量机(SVM)参数的分类实现
  • OSS cp(下载文件)
  • 有范同城旅游广告小程序系统:赋能旅游行业数字化运营新生态