![](https://img-blog.csdnimg.cn/0be393667b8646d68080be7a231cad1c.png)
cpu在执行程序过程中,如果发生意外事件,cpu要中断当前程序的执行转而处理意外事件;通过执行中断服务程序的方式来处理意外事件;
中断的过程是比较复杂的,比如说要把程序的断点保存起来,要保存终端现场(有些寄存器的值)
![](https://img-blog.csdnimg.cn/dd8270e4d8ed4b74b61e503a6b5162a6.png)
中断源:在主机的内外部,CPU的内外部,能够引发CPU发生中断的因素。
终端就是中断源产生的
![](https://img-blog.csdnimg.cn/fd1d8c0d0965430494e520ccbdeae15b.png)
排队器:同一个时刻,向cpu发出中断请求的有多个设备,我们需要 一个排队器来确定提出终端请求的这些设备优先级最高的是哪一个设备
中断向量地址形成部件:中断服务程序在内存中的起始地址
如果有多个设备同时发出请求的话,我们就要采用中断排队器筛选出优先级别最高的设备
![](https://img-blog.csdnimg.cn/6650a8829d7a4355bca54ff38773755f.png)
![](https://img-blog.csdnimg.cn/fe92673860ae49e895a075341a153dcf.png)
下一步是找到中断服务程序的地址
![](https://img-blog.csdnimg.cn/d5892e02346b427f8b190ace86d15618.png)
我们的向量地址是通过系统总线的数据线送入到CPU当中的
![](https://img-blog.csdnimg.cn/b7b0a24cb9b34e899fe895a73d9b8943.png)
![](https://img-blog.csdnimg.cn/fba54e7fd1c84237a0461a71d50ca5e0.png)
![](https://img-blog.csdnimg.cn/20a9db9ff1264799b46e665fa5a7ac2a.png)
![](https://img-blog.csdnimg.cn/bf60df90ef50469fbfcf10cbc071838d.png)
![](https://img-blog.csdnimg.cn/5cf7567632d3440983a11d8bd2d92223.png)
设备工作结束以后它会把输入数据送入到接口当中的数据缓冲寄存器(DBR)中,同时修改D和B触发器状态,这个时候设备工作已经结束了,数据已经准备好了,CPU随时可以来把数据取走
![](https://img-blog.csdnimg.cn/92bb3c81598f4863ba77f1fb767a365f.png)
![](https://img-blog.csdnimg.cn/334346d1aa3f49f88369338d7a20c26f.png)
![](https://img-blog.csdnimg.cn/1a0aae85603347fca2b575d8313220d7.png)