🧠 什么是中断?
中断是硬件或软件发出的异步信号,强迫 CPU 暂停当前任务,转去执行对应的中断处理程序(ISR),处理完再恢复原任务。
📋 完整工作流程
- 1. 中断请求:外设发出 IRQ 信号
- 2. 中断判优:中断控制器仲裁优先级
- 3. 响应中断:CPU 完成当前指令,发出 INTAR
- 4. 保存现场:FLAGS/CS/IP 压栈
- 5. 执行 ISR:跳转到中断处理程序
- 6. 恢复现场:IRET 弹出寄存器
- 7. 继续原任务:恢复原程序执行
🔑 关键概念
- IRQ:中断请求信号线
- ISR:Interrupt Service Routine
- 中断向量表:存放 ISR 入口地址
- 上下文切换:保存/恢复寄存器现场
- 中断屏蔽:IF 标志位控制可屏蔽中断
- NMI:不可屏蔽中断(硬件故障)
📊 中断分类
- 硬件中断:外设 → IRQ → CPU(键盘、磁盘、网卡)
- 软件中断:INT 指令主动触发(系统调用)
- 异常:CPU 执行指令时检测到错误(除零、缺页)