Команды CLI и STI служат для установки или сброса флага прерываний, что позволяет включать или отключать реакцию на внешние прерывания. Команда CLI (Clear Interrupt flag) сбрасывает флаг IF в значение 0, что запрещает прерывания. Команда STI (Set Interrupt flag) устанавливает флаг IF в значение 1, что разрешает прерывания.

 

Команда CLI
Синтаксис: CLI
Операнды: Нет
Назначение: Сброс флага прерывания
Процессор: 8086+
Флаги: Сбрасывается флаг IF
Комментарий: Команда CLI очищает флаг IF. На другие флаги или регистры она не влияет. Внешние прерывания не распознаются в конце команды CLI и начиная с этого момента до установки флага прерываний.
Ограничения: Нет
Примеры:
cli
Команда STI
Синтаксис: STI
Операнды: Нет
Назначение: Установка флага прерывания
Процессор: 8086+
Флаги: Устанавливается флаг IF
Комментарий: Команда STI устанавливает флаг IF. После выполнения следующей команды процессор может реагировать на внешние прерывания, если эта следующая команда оставляет флаг IF в состоянии, разрешающем прерывания.
Если внешние прерывания запрещены и после команды STI была использована команда RET (например в конце подпрограммы), то команда RET будет выполнена до того, как начнут распознаваться внешние прерывания.
Также, если внешние прерывания запрещены и была использована команда STI, а за ней команда CLI, то внешние прерывания не будут распознаваться, поскольку команда CLI очищает флаг IF во время своего выполнения.
Ограничения: Нет
Примеры:
sti