Скачиваний:
105
Добавлен:
21.02.2014
Размер:
43.52 Кб
Скачать

37. Система прерываний 8086

Проц i8086 может обрабатывать до 256 типов прерываний. Каждому прерыванию соответствует свой вектор.

Двойное слово, которое содержит адрес CS:IP вызываемой плдпроги.

Подвекторы прерываний в общем пространстве памяти отводятся 1бит начиная с 0 адреса.

Карта векторов прерываний

При переходе к подпроге обработки прерывания INTn, где n – тип прерывания.

Проц перемещает в стек содержимое регистров IP и CS, регистра флагов F сбрасывает флаг разрешения прерывания, включает адрес 4×n, где n – тип прерывания.

Сброс флага IF не разрешает прерывать выполнение подпроги обработки прерывания до ее завершения или выполнение команды STI (разрешение выполнения маскируемых аппаратных прерываний). Последней командойподпроги обработки прерывания является команда IRET (возврат из подпроги прерывания).

По этой команде МП выбирает из стека адрес возврата (адрес команды, следующей за командой INT) и содержимое регистра флагов.

Прерывания делятся на внешние, аппаратные и внутренние.

Запросы прерываний IRQ внешних аппаратных прерываний поступают в систему прерывания или на линию не массированного прерывания NMI МП.

Система прерываний формирует сигнал INTR массированного прерывания МП.

Маскированное отличается от не маскированного тем, что первое может быть запрещено программно командой сброса флага разрешения прерывания INT. В этом случае при поступлении запросов прерывания они будут игнорироваться.

Внутреннее прерывание МП делят на программные и аппаратные.

Источниками внутренних программных прерываний являются:

Тип 0 – ошибка деления.

Тип 1 – пошаговый режим.

INT 0 (тип 4) – выполение прерывания 4 если флаг переполнения в регистре признаков OF=1.

Внутренние программные прерывания INTn INT3 выполняются по команде прерывания и разрешают вызывать подпрогу обработки прерывания без применения вызовов подпрог.

В отличии от INTn прерывание INT3 является однобайтной командой и используется для передачи управления подпроге-отладчику.

Внутреннее аппаратное прерывание возникает:

- при делении на 0.

- при установленном флаге трассировки TF; в этом случае прерывание происходит после выполнения каждой команды.

- после команды INT0, если установлен флаг переполнения 0F.

Аппаратное прерывание возникает при активном уровне сигналов на выводах NMI - немаскируемые прерывания (тип2), и команды INTR – маскированное прерывание (тип5-255).

Маскированное прерывание выполняется при установленном флаге IF (разрешение прерываний).

При переходе к подпроге обработки аппаратного прерывания проц последовательно формирует 2 цикла подтверждения прерывания в которых генерируется сигнал INTA (сигнал подтверждения прерывания) после 2го импульса этого сигнала контроллер прерываний передает по шине данных номер вектора прерываний.

Соседние файлы в папке ОТВЕТЫ МП