这几天在复习汇编的知识,中断过程是这样的
(1)取得中断类型码N
(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指令返回