第十二章 内中断
中断:cpu能接收到内部或外部的某种信息,cpu不再接着向下执行,而是转取处理这个特殊信息。
12.1 内中断的产生
cpu内部有下面情况发生将产生相应的中断信息。
1)除法错误,比如,执行div指令产生的除法溢出 (中断码 0)
2)单步执行 (1)
3)执行into指令 (4)
4)执行int指令 (int n)
cpu通过中断类型码来识别中断的来源。
12.2 中断处理程序
cpu收到中断信息后,需要中断信息处理程序。 对不同的中断信息编写不同的处理程序。根据中断类型码和中断向量表来定位中断处理程序
12.3 中断向量表
一张存放中断处理程序入口地址的列表。 中断向量表存放于内存中,其中放着256个中断源所对应的中断处理程序的入口
8086cpu默认的中断向量表存放于 0000:0000 ~ 0000:03FF
一个表项占用2个字(4个字节),高地址存放段地址,低地址存放偏移地址。
12.4 中断过程
cpu收到内部或外部中断以后会根据中断码寻找中断向量表中的中断处理程序的入口地址,并设置CS 和IP。 称为中断过程
以下是8086执行中断的过程:
1) 取得中断类型码:
2)标志寄存器的值入栈(pushf)