8.2.2中断指令 1.中断调用指令:INTn 功能描述 (1)标志寄存器FLAG进栈 (2)置=0,TF=0 (3)CSP(即下一条指令地址, BOUND除外)进栈 (4)根据中断号n(INTO与 BOUND分别为4和5),以n×4为索引,查中断向量表,将相应 地址处的双字送CSP。 对标志位的影响:I=TF=0,不影响其它标志。 2.中断返回指令:IRET 功能描述:从堆栈弹出一个双字到CS:P,再弹出一个字到 FLAGS 对标志位的影响:由栈中弹出值确定。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 8.2.2 中断指令 1. 中断调用指令:INTn 功能描述: (1)标志寄存器FLAGS进栈。 (2)置IF = 0,TF = 0。 (3)CS:IP(即下一条指令地址,BOUND除外)进栈。 (4)根据中断号n(INTO与BOUND分别为4和5),以n×4为索引,查中断向量表,将相应 地址处的双字送CS:IP。 对标志位的影响:IF = TF = 0,不影响其它标志。 2. 中断返回指令:IRET 功能描述:从堆栈弹出一个双字到CS:IP,再弹出一个字到FLAGS。 对标志位的影响:由栈中弹出值确定
3.INT与CALL的主要区别 ■CAL主要用来调用应用程序中的过程,而INT则用来调用系统服务程序。 过程可以有任意多个,而80x86系统最多只支持256个中断服务程序。 ■对过程的调用是指出过程地址,而对中断服务程序的调用则是给出中断号。 ⅣNT总是段间调用。 NT将标志寄存器和返回地址进栈,而CALL指令只将返回地址进栈。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 3. INT与CALL的主要区别 ▪ CALL主要用来调用应用程序中的过程,而INT则用来调用系统服务程序。 ▪ 过程可以有任意多个,而80x86系统最多只支持256个中断服务程序。 ▪ 对过程的调用是指出过程地址,而对中断服务程序的调用则是给出中断号。 ▪ INT总是段间调用。 ▪ INT将标志寄存器和返回地址进栈,而CALL指令只将返回地址进栈