- 除法错误:0执行div指令产生除法溢出
- 单步执行:1
- 执行into指令:4
- 执行int n指令,立即数n为中断类型码
- CPU接到中断信息:执行中断处理程序
- 中断信息和入口地址联系:中断向量表共1024个字节256个中断
- 每个入口地址占四个字节,放IP共2个字节和CS共2个字节
- 中断类型码和入口地址的映射关系
(IP) = (N * 4)
(CS) = (N * 4 + 2)
- 0号中断
assume cs:code
code segment
start:
mov ax,8
mov bx,0
div bx
mov ah,4ch
int 21h
code ends
end start
- 中断所在的位置
- 观察
INT 21H
,计算得0000:0084
- 中断过程由CPU硬件自动完成
- 由中断类型码找到中断向量并由它设置CS和IP
- 从中断信息取得中断类型码
- 标志寄存器的值入栈——中断过程要改变标志寄存器的值,需要保护
- 设置标志寄存器TF和IF为0
- CS内容入栈
- IP内容入栈
- 从中断向量表读取中断处理程序的入口地址,设置IP和CS
取得中断类型码N
pushf
TF = 0 IF = 0
push CS
push IP
(IP) = (N * 4),(CS) = (N * 4 + 2)
- CPU随时可能检测中断信息,所以中断程序常驻内存(一直存储在内存的某段空间中)
- 中断处理程序的入口地址,即中断向量,必须存储在中断向量表的表项中
(0000:0000 - 0000:03FF)