中断interrupt

程序运行时,如果系统内部、系统外部或现行程序出现了需要特殊处理的”事件”,CPU立即终止当前程序的运行-中断,然后从一个新的存储器区域启动相应的程序来处理”事件”;处理完后,回到原来的程序继续运行;
将不同的”事件”和相应的处理程序在内存中的地址对应起来,就构成中断向量表;
通常将存储器最低的1KB作为中断向量表区,即地址范围是:0x00000-0x003FF,假设是20根地址线;则最大寻址空间是1MB;
每个中断向量占4个字节,最大只能存储256个中断向量;
中断通信方式
1.轮询模式 Polling mode:CPU不断查询接收队列,直到发现有数据存在;
2.中断模式 Interrupt mode:当接收到数据时,串口控制器以中断的方式通知CPU;
3.直接存储访问模式 DMA:不需要CPU参与,直接把数据送到内存中;多适合于频繁大量的数据交互;
由专门的寄存器负责[以收发快递为例]
中断向量表interrupt vector table
中断向量interrupt vector
以中断类型码或中断类型号区分;按大小顺序存放分:系统专用中断、保留中断、用户自定义中断
中断寄存器
以段+偏移的形式指定中断处理程序入口地址
中断处理过程
中断实例
[实例1]若中断类型码为20H,则中断向量存放的地址是多少?如果对应的4个字节内容分别是10H、20H、30H、40H,则中断处理程序的入口地址是多少?
[解]:
中断向量从小到大存放,每个占4个字节,所以20H的中断类型码的地址为0000:0080H
对应的基地址CS和偏移地址IP分别是:2010H和4030H,中断处理程序的地址为4030:2010H
[实例2] 若中断类型码为17H,则中断向量存放的地址是多少? 如果对应中断处理程序的入口地址是2340H:7890H,则中断向量各个字节的内容是多少?
[解]
中断向量从小到大存放,每个占4个字节,所以17H的中断类型码的地址为0000:005CH开始的4个字节
对应的基地址CS和偏移地址IP分别对应中断处理程序地址的高地址和低地址