CLI禁止中断发生,关中断
STI允许中断发生,开中断
这两个指令只能在内核模式下执行,不可以在用户模式下执行;而且在内核模式下执行时,应该尽可能快的恢复中断,因为CLI会禁用硬件中断,若长时间禁止中断会影响其他动作的执行(如移动鼠标等等),系统就会变得不稳定。在标志寄存器中中断标志清零的情况下,可以以“int ××”的形式调用软中断。
STI(Set Interrupt) 中断标志置1指令 使 IF = 1;
CLI(Clear Interrupt) 中断标志置0指令 使 IF = 0.
它们只影响本指令指定的标志,而不影响其他标志位(即STI和CLI只影响IF)。
CLI和STI是用来屏蔽中断和恢复中断用的,如 设置栈基址SS和偏移地址SP时,需要CLI,因为如果这两条指令被分开了,那么很有可能SS被修改了,但由于中断,而代码跳去其它地方执行了,SP还没来得及修改,就有可能出错。
CLI可以屏蔽中断, STI恢复中断,于是,两者之间的代码就不会被外部中断打断。所以可以尽量保护代码连续执行。但是对于一些不允许屏蔽的中断以及异常,代码的运行还是会被中断
中断向量是指中断发生以后,程序会按照中断类型执行不同的中断服务程序,这个中断向量就是这些中断处理函数的入口地址。
具体为什么叫向量,我认为,中断是有优先级的,程序会按照优先级从高到低依次查询,突出一个方向性,所以叫向量。
程序员可以改变段地址和偏移地址ÿ