中断的基本概念

在计算机执行程序的过程中,出现某些需要紧急处理的特殊情况或者特殊请求,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.中断返回

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

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

posted @ 2025-09-25 15:01  是我,米老鼠  阅读(16)  评论(0)    收藏  举报