![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
INT тип_прерывания
где тип_ прерывания - номер, идентифицирующий один из 256 различных векторов, находящихся в памяти. Таким образом, каждому из 256 прерываний соответствует один вектор (4 байта памяти, где хранятся IP и CS программы обработки прерывания). При исполнении команды INT микропроцессор производит следующие действия: 1. Помещает в стек регистр флагов. 2. Обнуляет флаг трассировки TF и флаг включения-выключения прерываний IF для исключения пошагового режима исполнения команд и блокировки других маскируемых прерываний. 3. Помещает в стек значение регистра CS. 4. Вычисляет адрес вектора прерывания, умножая тип_прерывания на 4. 5. Загружает второе слово вектора прерывания в регистр CS. 6. Помещает в стек значение указателя команд IP. 7. Загружает в указатель команд IP первое слово вектора прерывания. 8. Устанавливает флаги IP и TF. Итак, после исполнения команды INT в стеке окажутся значения регистра флагов и регистров CS и IP, флаги TF и IF будут равны 0, а пара регистров CS: IP будет указывать на начальный адрес программы обработки прерывания. 256 векторов прерывания размещаются в области памяти с младшими адресами. Так как каждый из них имеет длину 4 байта, то все они занимают первые 1К байтов, т.е. область памяти с абсолютными адресами от 0до 3FFH. Например, команда INT 21Н заставит микропроцессор 8086 вычислить адрес вектора 54Н (4 Из 256 типов прерываний фирма Intel зарезервировала первые 5 (от 0 до 4) для внутренних прерываний. В IBM PC многие другие типы прерываний зарезервированы для нужд основной системы ввода-вывода (BIOS), а также для операционной системы DOS. INTO - команда прерывания по переполнению Команда INTO (interrupt if overflow - прервать при переполнении) представляет собой команду условного прерывания. Она инициирует прерывание лишь тогда, когда флаг переполнения OF равен 1. В этом случае команда INTO передает управление программе обработки прерывания с помощью косвенного вызова через вектор прерывания 4. (Другими словами, команда INTO инициирует прерывание типа 4.)
|