INTO
(INTerrupt if Overflow)
Прерывание, если переполнение
Схема команды: | into |
Назначение: инициирование прерывания с номером 4, если установлен флаг of.
Алгоритм работы:
Проанализировать состояние флага of:
если of=0, то никаких действий производить не нужно — передать управление на следующую команду;
если of=1, то дальнейшие действия, как при команде int, то есть:
записать в стек регистр флагов eflags/flags и адрес возврата. При записи адреса возврата вначале записывается содержимое сегментного регистра cs, затем содержимое указателя команд eip/ip;
сбросить в ноль флаги if и tf;
передать управление на программу обработки прерывания с данным номером. Механизм передачи зависит от режима работы микропроцессора (см. уроки 15 и 17).
Состояние флагов после выполнения команды:
09 | 08 |
IF | TF |
r | r |
Применение:
Свойство этой команды инициировать вызов подпрограммы обработки прерывания с номером вектора 4 определяет варианты ее применения. Если предыдущая команда в программе может в результате своей работы установить флаг переполнения of (к примеру, арифметические команды), то для обнаружения и обработки такой ситуации можно использовать команду into. Особенности передачи управления и обработки (корректировки) результата зависят от режима работы микропроцессора.
.486 ... mov bx,186 imul eax,bx,8 ;если результату не хватило размерности операнда1, ;то of установится в 1 ;исправим ситуацию в обработчике прерывания 3 into |
См. также: уроки 8, 15, 17 и команды , ,