Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Внутренние прерывания



В процессоре 8086 предусмотрено несколько внутренних прерываний, генерируемых при выполнении программы. Команда INT n вызывает прерывание сразу после своего завершения. Тип прерывания n, закодированный программистом в команде, определяет вызываемую процедуру прерывания. Следовательно, эту команду можно использовать для отладки процедур прерываний, обслуживающих периферийные устройства.

Команда INTO генерирует прерывание типа 4 после своего завершения, если установлен флаг переполнения OF в регистре флагов.

Процессор самостоятельно генерирует прерывание типа 0 сразу после выполнения команд деления DIV и IDIV, если имело место деление на 0.

Если установлен флаг пошаговой работы TF в регистре флагов, процессор автоматически генерирует прерывание типа 1 после выполнения каждой команды. Пошаговый режим предназначен для отладки программ.

Внутренние прерывания характеризуются следующими свойствами:

1. Тип прерывания либо предопределен, либо содержится в коде команды.

2. Подтверждение прерывания не выдается.

3. Внутренние прерывания нельзя запретить, кроме прерываний пошаговой работы.

4. Любое внутреннее прерывание (за исключением прерывания пошаговой работы) имеет более высокий приоритет, чем внешние прерывания. Если запрос NMI или INT появляется при выполнении команды, которая сама генерирует внутреннее прерывание (например, ошибка деления), оно обрабатывается первым.

По командам внутреннего прерывания процессор выполняет следующие действия:

1. Заносит в стек содержимое регистра флагов.

2. Заносит в стек содержимое регистра IP и CS.

3. Вызывает и выполняет процедуру прерывания.

4. Извлекает из стека содержимое CS и IP.

5. Извлекает из стека содержимое регистра флагов.

6. Возвращается к выполнению следующей команды.

Приоритеты прерываний в порядке их убывания:

1. Прерывание из-за ошибки деления.

2. Программное прерывание, инициируемое командой INT.

3. Команда прерывания при переполнении.

4. Немаскируемое прерывание NMI.

5. Маскируемое прерывание INT.

6. Прерывание пошаговой работы.

Таблица векторов прерываний

Таблица векторов прерываний – таблица адресов обработчиков прерываний.

Таблица указателей векторов прерываний осуществляет связь между кодом типа прерывания и процедурой, которая обслуживает прерывание данного типа. Таблица занимает 1 Кбайт памяти с диапазоном адресов 0 - 3FFh и может содержать до 256 элементов.

Каждый i-й элемент таблицы представляет собой полный начальный логический адрес процедуры, которая обслуживает прерывание типа i. Слово с меньшим адресом содержит смещение, а слово с большим адресом - базовый адрес сегмента. Так как каждый элемент таблицы состоит из 4 байт, процессор вычисляет адрес нужного элемента таблицы путем умножения кода типа на 4.





Дата публикования: 2015-04-10; Прочитано: 649 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...