如何禁用一条指令的中断?

时间:2015-10-25 14:39:37

标签: assembly x86 interrupt

只有一条指令的持续时间是否还有其他方法可以禁用中断?使用CLI指令?

2 个答案:

答案 0 :(得分:5)

是的,使用SS加载MOV将禁止下一条指令的外部中断。这是指令集引用所说的:

  

使用MOV指令加载SS寄存器会禁止所有中断   直到执行下一条指令之后。这个操作   允许将堆栈指针加载到ESP寄存器中   中断前的下一条指令(MOV ESP,堆栈指针值)   发生。

答案 1 :(得分:1)

此代码段可以解决问题:

pushf
pop  ax
and  ax, FDFFh
push ax
popf               ;This disables interrupts, You didn't use "CLI"
; Here IF is clear
sti