CPU在执行完当前正在执行的指令之后,检测到从CPU外部发送或内部产生的一种特殊信息—中断信息,CPU立马去处理这个特殊信息

中断类型码
1. 除法错误:0
2. 单步执行:1
3. 执行into指令:4
4. 执行int指令:int n

即中断处理程序入口地址的列表,必须放在0000:0000~0000:03FF单元中

执行完中断信息,还需要返回原来的执行点执行下面的指令,所以需要保存cs:ip的状态,还有标志寄存器。

1. 取得中断类型码
2. pushf
3. TF=0, IF=0
4. push CS
5. push IP
6. (IP)=(N*4), (CS)=(N*4+2)

中断过程中,寄存器的入栈顺序是:标志寄存器、CS、IP,然后iret的出栈顺序是IP、CS、标志寄存器。

最好将源字符串也放进中断向量表里。

mov ax,0
mov es,ax
mov word ptr es:[0*4],200h
mov word ptr es:[0*4+2],0

TF位为1,则引起中断。方便debug

1. 取得中断类型码1
2. 标志寄存器入栈,TF、IF设置为0
3. CS、IP入栈
4. (IP)=(1*4),(CS)=(1*4+2)

比如

mov ax,1000h
mov ss,ax    ;在这里是无法中断的。
mov sp,0

因为栈的初始化必须连续。