内中断产生的原因:
(1)、除法溢出 中断类型码:0
(2)、单步执行 1
(3)、执行into 4
(4)、执行int 该指令格式是int n,n是提供给CPU的中断类型码
对于这四种不同的信息,需要不同的处理,CPU需要知道接收到的中断信息的来源。所以中断信息必须包含识别来源的编码。
CPU收到中断信息后,需要对中断信息进行处理,而如何处理由我们编程决定。
中断程序的入口地址称为中断向量。
中断向量表就是中断程序入口地址的列表。
中断过程:
(1)取得中断类型码
(2)pushf
(3)TF = 0, IF = 0
(4)push CS
(5)push IP
(6)(IP)= (N * 4),(CS)= (N * 4 + 2)
在完成最后一步,CPU开始执行由程序员编写的中断处理程序
中断处理程序的编写方法和子程序比较相似:
(1)保存用到的寄存器
(2)处理中断
(3)恢复用到的寄存器
(4)用iret指令返回
iret指令等价于:
pop IP
pop CS
popf