前言:
内中断 。
目录:
概念:
任何一个通用 CPU 都具备一种能力, 可以在执行完当前正在执行的指令之后, 
检测到从 CPU 外部发送过来的或者内部产生的一种特殊信息, 
并且可以立即对所接受到的信息进行处理,这种特殊的信息称为: 中断信息  
中断意味着 CPU 不再继续向下执行, 而是转去处理这个特殊的信息, 
简单的讲,就是在做某件事情的时候,有东西突然打断你。 
| 中断原因 | 中断类型码 | 
|---|---|
| 除法错误 | 0 | 
| 单步执行 | 1 | 
| 执行 into 指令 | 4 | 
| 执行 int 指令 | n | 
中断类型码是中断来源信息的编码, 在 8086CPU 中使用一个字节的长度来编码中断源。 
中断处理程序:
CPU 在收到中断信息之后, 需要对中断进行处理 
中断处理程序就是用来处理对应中断的程序. CPU 在收到中断信息之后,  
就会转去执行对应的中断处理程序. 中断处理程序由程序员编写 
中断向量表: 是中断向量的列表  
中断向量: 是中断程序的入口地址
中断过程:
- 
    从中断信息中获取中断类型码 
- 
    标志寄存器的值入栈 
- 
    设置标志寄存器的第八位 TF 和第九位 IF 的值为 0 
- 
    CS 的内容入栈 
- 
    IP 的内容入栈 
- 
    从内存地址为中断类型码 *4和中断类型码*4+2的两个单元中读取中断处理程序的入口地址放入IP和CS中
相当于 (IP)=(N*4) (CS)=(N*4+2)
中断处理程序和iret指令:
中断处理程序的编写与子程序类似: 
- 
    保存用到的寄存器 
- 
    处理中断 
- 
    恢复用到的寄存器 
- 
    用iret指令返回 
iret指令的功能是: 
pop IP
pop CS
popf
很显然iret是起到恢复现场的功能。
除法错误中断的处理:
当用div指令产生除法溢出中断时,中断类型码0将定位到中断向量表的第一个中断向量,
然后进行相关的中断处理程序的执行。 
div除法中断处理为显示 “Divide overflow” 同时回到操作系统。
总结:
参考文献: 
https://blog.csdn.net/zhaoruixiang1111/article/details/81149657 
https://blog.csdn.net/u013018721/article/details/51282095

