Команда INT type - прерывание - вызывает подпрограмму обработки, определяемую типом прерывания. Тип прерывания зависит от значения бита v в КОП. Бит v зависит от того имеется или отсутствует операнд. Если v=0, второй байт команды отсутствует и тип прерывания принимается равным трем - это прерывание контрольной точки или контрольного останова. Если v=1, тип прерывания задается вторым байтом команды и может принимать значения от 0 до 255.
Выполнение команды INT инициирует следующую последовательность действий:
1) Декремент указателя стека на 2;
2) Включение в стек содержимого регистра флагов;
3) Сброс флагов IF и TF (запрещение восприятия прерываний и покомандной работы);
4) Декремент указателя стека на 2;
5) Включение в стек содержимого регистра CS;
6) Определение значения ADDRESS путем умножения кода типа прерывания на 4;
7) Загрузка в регистр CS слова памяти по адресу ADDRESS + 2;
8) Декремент указателя стека на 2;
9) Включение в стек содержимого регистра IP;
10) Загрузка в регистр IP слова памяти по адресу ADDRESS;
В результате этих действий осуществляется межсегментный косвенный вызов подпрограммы обработки прерывания через память, причем адрес памяти однозначно определяется типом прерывания.
Однобайтная команда INT (тип прерывания равен 3) используется в процессе отладки программ.
Команда программного прерывания короче команды CALL межсегментного вызова, и, кроме того, она запоминает в стеке содержимое регистра флагов. При этом вызванная подпрограмма обязательно должна заканчиваться командой возврата из прерывания IRET.
Команда IRET - возврат из обработки прерывания - предназначена для выхода из подпрограммы обработки прерываний. Действия команды IRET противоположны действиям команды INT:
1) Слово из вершины стека передается в IP;
2) Производится инкремент SP на 2;
3) Слово из вершины стека извлекается в CS;
4) Производится инкремент SP на 2;
5) Слово из вершины стека передается в регистр флагов;
6) Производится инкремент SP на 2;
Команда INTO - прерывание переполнению - генерирует программное прерывание в том случае, если в результате операции установлен флаг переполнения OF=1. Команда INTO выполняется так же, как команда INT, но имеет фиксированный тип прерывания, равный 4.
Эта команда обычно применяется после команд арифметических операций или после команд сдвига, которые могут вызвать переполнение. Так как переполнение ведет к ошибочным результатам, то его необходимо обрабатывать специальными подпрограммами.