ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение
высшего профессионального образования
Вятский государственный университет
Факультет автоматики и вычислительной техники
Кафедра электронных вычислительных машин
" Обработка прерываний на основе БВПП K1810ВН59A "
ОТЧЕТ
по лабораторной работе №2
Дисциплина: "Микропроцессорные системы"
Специальность: 230101 – Вычислительные машины, комплексы, системы и сети
Выполнил: | |
студент группы ВМ-43 | |
_____________________ | |
Проверил: | |
преподаватель | |
________________ | |
Киров
2006
Задание
- разработать программу инициализации ПКП для режимов фиксированных приоритетов, спецмаскирования и программного опроса;
- разработать текст пользовательской программы во время выполнения которой приходят запросы на прерывание IRQ;
- разработать также тексты подпрограмм обработки прерываний, во время выполнения которых также могут приходить запросы IRQ;
- выполнить исследования принципов обслуживания запросов для следующих дисциплин обслуживания прерываний:
1) фиксированных приоритетов;
2) специального маскирования;
3) циклического сдвига с использованием OCW2 формата RE по типу А;
4) циклического сдвига с использованием OCW2 формата RSE по типу В (L2-L0 = №ППОП + X);
5) программного опроса.
Таблица 1.1 – Вариант задания режимов Таблица 1.2 – Начальные адреса ППОП
Задание | Вариант 17 |
1 фиксированных пр. | i8080, шаг 8 |
2 спецмаскирования | Ведомая БИС |
3 сдвиг А | |
4 сдвиг B | Ведущая с PSV |
5 программного опр. | |
X для типа B | 2 |
Ведомые на входы IRQ ведущей: | 1, 6 |
№ ко - | Вариант 17 | |||
Основ- | манды | IRQ | CS | IP |
ная прог-рамма | 2 9 16 | 6 2,7 0 | 000h | 000h |
ППОП 0 1 2 3 4 5 6 7 | 4 5 6 5 4 6 3 4 | 223h 753h 812h 3D1h 530h 108h 0EEh 778h | 060h 100h 120h 080h 050h 090h 070h 110h |
Таблица 1.3 - Последовательность запросов IRQ
№ варианта | Последовательность запросов IRQ |
Вариант 17 | 7,6; 5,1; 0,7; 4; 6; 2,3; 1; 1,0 |
Таблица 1.4 – Задание для режима прогр. опроса
Номер команды | Номер команды |
чтения СС ПКП | поступления IRQ |
6 | 4 |
9 | 7 |
11 | |
14 | 11 |
18 | 17 |
Базовый адрес ПКП равен B0h.
Листинги программ инициализации
1. Режим фиксированных приоритетов (i8080, шаг 8)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│01A│mov al,b │ 1 ││загр ICW4 |одна БИС | 80 шаг 8│
│01B│out B0h, al │ 1 ││загр ICW1 │
│01C│mov al,b │ 1 ││ │
│01D│out B1h, al │ 1 ││загр ICW2 │
│01E│mov al,b │ 1 ││ │
│01F│out B1h, al │ 1 ││загр ICW4 │
│020│ret │ 1 ││ └───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
2. Режим специального маскирования (ведомая)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│01A│mov al,b │ 1 ││загр ICW4 |ведомая | 86 │
│01B│out B0h, al │ 1 ││загр ICW1 │
│01C│mov al,b │ 1 ││ │
│01D│out B1h, al │ 1 ││загр ICW2 │
│01E│mov al,b │ 1 ││ │
│01F│out B1h, al │ 1 ││загр ICW3 │
│020│mov al,b │ 1 ││ │
│021│out B1h, al │ 1 ││загр ICW4 │
│022│mov al,b │ 1 ││ │
│023│out B0h, al │ 1 ││загр OCW3 │
│024│ret │ 1 ││ └───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
3. Режим циклического сдвига по типу А
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│01A│mov al,b │ 1 ││загр ICW4 |одна БИС | 86 │
│01B│out B0h, al │ 1 ││загр ICW1 │
│01C│mov al,b │ 1 ││ │
│01D│out B1h, al │ 1 ││загр ICW2 │
│01E│mov al,b │ 1 ││ │
│01F│out B1h, al │ 1 ││загр ICW4 │
│020│ret │ 1 ││ └───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
4. Режим циклического сдвига по типу В (ведущая с PSV)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│01A│mov al,b │ 1 ││загр ICW4 |одна БИС | 86 │
│01B│out B0h, al │ 1 ││загр ICW1 │
│01C│mov al,b │ 1 ││ │
│01D│out B1h, al │ 1 ││загр ICW2 │
│01E│mov al,b │ 1 ││ │
│01F│out B1h, al │ 1 ││загр ICW3 │
│020│mov al,b │ 1 ││ │
│021│out B1h, al │ 1 ││загр ICW4 │
│022│mov al,b │ 1 ││ │
│023│out B0h, al │ 1 ││загр OCW3 │
│024│xor cx, cx │ 1 ││ │
│025│ret │ 1 ││ └───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
5. Режим программного опроса
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│01A│mov al,b │ 1 ││загр ICW4 |одна БИС | 86 │
│01B│out B0h, al │ 1 ││загр ICW1 │
│01C│mov al,b │ 1 ││ │
│01D│out B1h, al │ 1 ││загр ICW2 │
│01E│mov al,b │ 1 ││ │
│01F│out B1h, al │ 1 ││загр ICW4 │
│020│cli │ 1 ││ │
│021│ret │ 1 ││ └───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
Подпрограммы обработки прерываний
1. Режим фиксированных приоритетов (i8080, шаг 8) - ППОП 5
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│090│push ax │ 1 ││ │
│091│add ax,2h │ 1 ││ │
│092│dec ax │ 1 ││ │
│093│inc ax │ 1 ││ │
│094│add ax,0h │ 1 ││ │
│095│mov ax,10h │ 1 ││ │
│096│mov al,20h │ 1 ││ │
│097│out B0h, al │ 1 ││ │
│098│pop ax │ 1 ││ │
│099│ret │ 1 ││ └───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
2. Режим специального маскирования - ППОП 5
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│090│sti │ 1 ││ │
│091│push ax │ 1 ││ │
│092│add ax,2h │ 1 ││ │
│093│dec ax │ 1 ││ │
│094│inc ax │ 1 ││ │
│095│mov al,65h │ 1 ││ │
│096│out B0h, al │ 1 ││ │
│097│in al, B0h │ 1 ││ │
│098│or al, al │ 1 ││ │
│099│jnz 9Ch │ 1 ││ │
│09A│mov al,20h │ 1 ││ │
│09B│out ACh, al │ 1 ││ │
│09C│pop ax │ 1 ││ │
│09D│iret │ 1 ││ └───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
3. Режим циклического сдвига по типу А – ППОП 5
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│090│sti │ 1 ││ │
│091│push ax │ 1 ││ │
│092│add ax,2h │ 1 ││ │
│093│dec ax │ 1 ││ │
│094│inc ax │ 1 ││ │
│095│add ax,0h │ 1 ││ │
│096│mov ax,10h │ 1 ││ │
│097│mov al, A0h │ 1 ││ │
│098│out B0h, al │ 1 ││ │
│099│pop ax │ 1 ││ │
│09A│iret │ 1 ││ └───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
4. Режим циклического сдвига по типу В (ведущая с PSV)
– ППОП 1 (для ведомой)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│100│sti │ 1 ││ │
│101│push ax │ 1 ││ │
│102│add ax,2h │ 1 ││ │
│103│dec ax │ 1 ││ │
│104│cli │ 1 ││ │
│105│call F0h │ 1 ││ │
│106│pop ax │ 1 ││ │
│107│iret │ 1 ││
…………………………………………………………………………………………………………………………………………………………………………………………………………………………
│0F0│mov al, A0h │ 1 ││ │
│0F1│out B4h, al │ 1 ││ │
│0F2│in al, B4h │ 1 ││ │
│0F3│or al, al │ 1 ││ │
│0F4│jnz FAh │ 1 ││ │
│0F5│mov al,61h │ 1 ││ │
│0F6│out B0h, al │ 1 ││ │
│0F7│mov al, C3h │ 1 ││ │
│0F8│out B0h, al │ 1 ││ │
│0F9│mov cl,4 │ 1 ││ │
│0FA│ret │ 1 ││ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
– ППОП 5 (для ведущей)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│090│call 140h │ 1 ││ │
│091│sti │ 1 ││ │
│092│push ax │ 1 ││ │
│093│add ax,2h │ 1 ││ │
│094│dec ax │ 1 ││ │
│095│inc ax │ 1 ││ │
│096│add ax,0h │ 1 ││ │
│097│cli │ 1 ││ │
│098│mov al,65h │ 1 ││ │
│099│out B0h, al │ 1 ││ │
│09A│mov al, C7h │ 1 ││ │
│09B│out B0h, al │ 1 ││ │
│09C│mov cl,0 │ 1 ││ │
│09D│call 140h │ 1 ││ │
│09E│pop ax │ 1 ││ │
│09F│iret │ 1 ││ └───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
- установка маски
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│140│in al, B0h │ 1 ││ │
│141│and al,b │ 1 ││ │
│142│xor ah, ah │ 1 ││ │
│143│shl ax, cl │ 1 ││ │
│144│or al, ah │ 1 ││ │
│145│out B1h, al │ 1 ││ │
│146│ret │ 1 ││ └───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
5. Режим программного опроса - ППОП 6
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│070│pushf │ 1 ││ │
│071│push ax │ 1 ││ │
│072│add ax,2h │ 1 ││ │
│073│dec ax │ 1 ││ │
│074│inc ax │ 1 ││ │
│075│add ax,0h │ 1 ││ │
│076│mov al, A0h │ 1 ││ │
│077│mov al,20h │ 1 ││ │
│078│out B0h, al │ 1 ││ │
│079│pop ax │ 1 ││ │
│07A│popf │ 1 ││ │
│07B│retf │ 1 ││ └───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
- ПП чтения слова состояния ПКП
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│030│mov al,b │ 1 ││ │
│031│out B0h, al │ 1 ││загр OCW3 │
│032│in al, B0h │ 1 ││ │
│033│or al, al │ 1 ││ │
│034│jns 37h │ 1 ││ │
│035│and al,b │ 1 ││ │
│036│callidt │ 1 ││ │
│037│ret │ 1 ││ └───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
Таблица переходов для процессора i8080.
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│0C0│jmp 060h │ 1 ││ ППОП0 │
│0C8│jmp 100h │ 1 ││ ППОП1 │
│0D0│jmp 120h │ 1 ││ ППОП2 │
│0D8│jmp 080h │ 1 ││ ППОП3 │
│0E0│jmp 050h │ 1 ││ ППОП4 │
│0E8│jmp 090h │ 1 ││ ППОП5 │
│0F0│jmp 070h │ 1 ││ ППОП6 │
│0F8│jmp 110h │ 1 ││ ППОП7 └───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
Графики вложенности.
1. Режим фиксированных приоритетов (i8080, шаг 8)
0┤ ▒▒░░ ▒▒░░ ▒▒░░
│ ││││ ││││ ││││
1┤ ▒▒││││░░ ▒▒││││░░▒▒░░ ││││
│ ││││││││ ││││││││││││ ││││
2┤ ││││││││ ▒▒││││││││││││░░ ▒▒░░ ││││
│ ││││││││ ││││││││││││││││ ││││ ││││
3┤ ││││││││ ││││││││││││││││▒▒░░ ││││ ││││
│ ││││││││ ││││││││││││││││││││ ││││ ││││
4┤ ││││││││▒▒░░ ││││││││││││││││││││ ││││ ││││
│ ││││││││││││ ││││││││││││││││││││ ││││ ││││
5┤ ││││││││││││▒▒││││││││││││││││││││░░ ││││ ││││
│ ││││││││││││││││││││││││││││││││││││ ││││ ││││
6┤▒▒░░▒▒││││││││││││││││││││││││││││││││││││░░▒▒░░ ││││ ││││
│││││││││││││││││││││││││││││││││││││││││││││││││ ││││ ││││
7┤││││││││││││││││││││││││││││││││││││││││││││││││▒▒░░││││▒▒░░││││
│││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││
└─────────────────────────────────────────────────────────────────────────────
2. Режим специального маскирования (ведомая)
0┤ ▒▒ ░░ ▒▒░░ ▒▒░░
│ ││ ││ ││││ ││││
1┤ ▒▒ ││ ││ ││││ ░░▒▒░░ ││││
│ ││ ││ ││ ││││ ││││││ ││││
2┤ ││ ││ ││ ▒▒ ││││░░││││││ ▒▒ ░░││││
│ ││ ││ ││ ││ ││││││││││││ ││ ││││││
3┤ ││ ││ ││ ││▒▒░░││││││││││││ ││ ││││││
│ ││ ││ ││ ││││││││││││││││││ ││ ││││││
4┤ ││ ││▒▒░░││ ││││││││││││││││││ ││ ││││││
│ ││ ││││││││ ││││││││││││││││││ ││ ││││││
5┤ ││▒▒││││││││░░││││││││││││││││││ ││ ││││││
│ ││││││││││││││││││││││││││││││││ ││ ││││││
6┤▒▒ ││││││││││││││││││││││││││││││││ ░░▒▒░░││ ││││││
│││ ││││││││││││││││││││││││││││││││ ││││││││ ││││││
7┤││▒▒││││││││││││││││││││││││││││││││░░▒▒░░││││││││▒▒░░││││││
│││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││
└─────────────────────────────────────────────────────────────────────────────
3. Режим циклического сдвига по типу А
0┤ ▒▒░░ ▒▒░░ ▒▒░░
│ ││││ ││││ ││││
1┤ ▒▒││││░░ ▒▒││││░░ ▒▒░░ ││││
│ ││││││││ ││││││││ ││││ ││││
2┤ ││││││││ ││││││││▒▒░░ ││││▒▒░░ ││││
│ ││││││││ ││││││││││││ ││││││││ ││││
3┤ ││││││││ ││││││││││││▒▒░░││││││││ ││││
│ ││││││││ ││││││││││││││││││││││││ ││││
4┤ ││││││││▒▒░░ ││││││││││││││││││││││││ ││││
│ ││││││││││││ ││││││││││││││││││││││││ ││││
5┤ ││││││││││││▒▒░░ ││││││││││││││││││││││││ ││││
│ ││││││││││││││││ ││││││││││││││││││││││││ ││││
6┤▒▒░░ ││││││││││││││││▒▒░░ ││││││││││││││││││││││││ ││││
│││││ ││││││││││││││││││││ ││││││││││││││││││││││││ ││││
7┤││││▒▒░░││││││││││││││││││││▒▒░░││││││││││││││││││││││││▒▒░░││││
│││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││
└─────────────────────────────────────────────────────────────────────────────
4. Режим циклического сдвига по типу В (ведущая с PSV)
0┤ ▒▒░░ ▒▒░░ ▒▒░░
│ ││││ ││││ ││││
1┤ ▒▒││││ ││││ ░░ ▒▒░░ ││││
│ ││││││ ││││ ││ ││││ ││││
2┤ ││││││ ▒▒░░ ││││ ││ ││││ ▒▒░░││││
│ ││││││ ││││ ││││ ││ ││││ ││││││││
3┤ ││││││ ││││ ││││▒▒░░ ││ ││││ ││││││││
│ ││││││ ││││ ││││││││ ││ ││││ ││││││││
4┤ ││││││▒▒░░ ││││ ││││││││ ││ ││││ ││││││││
│ ││││││││││ ││││ ││││││││ ││ ││││ ││││││││
5┤ ││││││││││ ││││▒▒░░││││││││ ││ ││││ ││││││││
│ ││││││││││ ││││││││││││││││ ││ ││││ ││││││││
6┤▒▒▒▒││││││││││ ││││││││││││││││▒▒││░░││││ ││││││││
│││││││││││││││ ││││││││││││││││││││││││││ ││││││││
7┤││││││││││││││▒▒░░││││││││││││││││││││││││││▒▒░░││││││││
│││││││││││││││││││││││││││││││││││││││││││││││││││││││││
└─────────────────────────────────────────────────────────────────────────────
5. Режим программного опроса
0┤ ▒▒░░
│ ││││
1┤ ││││
│ ││││
2┤ ▒▒░░││││
│ ││││││││
3┤ ││││││││
│ ││││││││
4┤ ││││││││
│ ││││││││
5┤ ││││││││
│ ││││││││
6┤▒▒░░││││││││
│││││││││││││
7┤││││││││││││▒▒░░
│││││││││││││││││
└────────────────────────
Теоретическая часть.
1. Функциональная схема каскадного включения БИС ПКП ВН59А для микропроцессора К1810ВМ86.

2. Программы инициализации ведущей и ведомой БИС.
- ведущая (режим фиксированных приоритетов без вложенности, порт В0h, ведомая на IRQ 6, маска на 5 )
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│020│mov al,b │ 1 ││UP=0 | каскадн | загр ICW4 │
│021│out B0h, al │ 1 ││загрузка ICW1 │
│022│mov al,b │ 1 ││адрес IDT 000h │
│023│out B1h, al │ 1 ││загрузка ICW2 │
│024│mov al,b │ 1 ││ведомая на 6 │
│025│out B1h, al │ 1 ││загрузка ICW3 │
│026│mov al,b │ 1 ││AEOI=0 | i8086 │
│027│out B1h, al │ 1 ││загрузка ICW4
│028│mov al,b │ 1 ││маскирование 5го прерывания │
│029│out 4Fh, al │ 1 ││загрузка OCW1 │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
- ведомая (IRQ ведущего – 6, режим программного опроса, порт BEh)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│030│mov al,b │ 1 ││UP=0 | каскадн | загр ICW4 │
│031│out BEh, al │ 1 ││загрузка ICW1 │
│032│mov al,b │ 1 ││адрес IDT 040h │
│033│out BFh, al │ 1 ││загрузка ICW2 │
│034│mov al,b │ 1 ││CAS 6 │
│035│out BFh, al │ 1 ││загрузка ICW3 │
│036│mov al,b │ 1 ││i8086 │
│037│out BFh, al │ 1 ││загрузка ICW4 │
│038│mov al,b │ 1 ││прогр. опрос | чтение ISR │
│039│out BEh, al │ 1 ││загрузка OCW3 │
│03A│cli │ 1 ││запрет прерываний │
│03B│ret │ 1 ││ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
3. ППОП ведущей и ведомой БИС.
- ППОП 7,4-0 ведущей (режим фикс. приоритетов без вложенности, порт 40h, ведомая на IRQ 6)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│040│push ax │ 1 ││сохранение регистров │
│041│push dx │ 1 ││ │
│044│cli │ 1 ││запретить прерывания │
│045│dec al │ 1 ││обработчик │
│046│int al │ 1 ││обработчик │
│047│mov al,5 │ 1 ││обработчик │
│048│int al │ 1 ││обработчик │
│049│mov al,b │ 1 ││EOI | clear ISR │
│04A│out B0h, al │ 1 ││загрузка OCW2 │
│04B│pop dx │ 1 ││ │
│04C│pop ax │ 1 ││восстановление регистров │
│04D│iret │ 1 ││ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
- ППОП 7-0 ведомой (режим прогр опроса, IRQ ведущего – 6, порт BEh)
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│140│pushf │ 1 ││ │
│141│push ax │ 1 ││сохранение AL │
│142│int al │ 1 ││обработчик │
│143│int al │ 1 ││обработчик │
│144│mov al,01000...b │ 1 ││SEOI | clr ISR[№ прер] │
│145│out BEh, al │ 1 ││загрузка OCW2 ведомой │
│146│in al, BEh │ 1 ││чтение ISR ведомой │
│147│or al,b │ 1 ││ведом ISR=0? │
│148│jnz 14Bh │ 1 ││если нет, то выход │
│149│mov al,b │ 1 ││если да, то формир OSW2(EOI) │
│14A│out B0h, al │ 1 ││загр OSW2 ведущей (40h) │
│14B│pop ax │ 1 ││восстановить AL │
│14C│popf │ 1 ││ │
│14D│retf │ 1 ││ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
Выводы.
В зависимости от времени поступления запросов и их приоритетов, обработка для режимов происходит следующим образом:
- фиксированные приоритеты – при поступлении запросов всегда обслуживается запрос с большим приоритетом. Приоритеты входов запросов остаются неизменными. Во время обслуживания запроса (то есть выполнения его ППОП), при поступлении запроса с более высоким приоритетом ПКП прерывает текущую ППОП и переходит к ППОП с большим приоритетом;
- специальное маскирование – любой запрос поступает на обработку, за исключением случаев, когда запрос с данным приоритетом уже находится на обработке (кроме режима разрешения приоритета ведомого для IRQ ведомых, когда в ведущей БИС разрешены многократные прерывания от одной ведомой);
- сдвиг типа А – запросы поступают на обработку только в случае, если относительно дна приоритетного кольца нет запросов с большим и прерываний на обработке с большим или равным приоритетами (для обработки – за исключением режима разреш. приоритета ведомого). При завершении обработки прерывания происходит сброс ISR-бита с наивысшим приоритетом и присвоение ему низшего приоритета;
- сдвиг типа В – аналогично режиму сдвиг типа А, только низший приоритет присваивается входу IRQ, указанному приграммистом в команде;
-программный опрос – используется для определения источника прерывания непосредственно программистом путем последовательного опроса источников запросов на прерывание.
Так же следует выделить некоторые момменты работы ПКП:
1. Возможна организация обработки вложенных прерываний при помощи команды STI и обработка прерываний без вложенности при использовании команды CLI;
2. При организации режима сдвиг типа B возможна некорректная работа ПКП, то есть сброс ISR-бита не того входа (это происходит из-за сдвига приоритетного кольца и вложенности прерываний). Для решения проблемы необходимо отдельно выполнять операции сброса бита регистра ISR и сдвига приоритетов.
3. При каскадном включении БИС ПКП:
· при обработке прерывания в ведомой БИС следует сбрасывать бит регистра ISR ведущей БИС только при равенстве всех битов регистра ISR ведомой 0;
· при обработке прерывания в ведущей БИС (со входа от ведомой) следует сбрасывать бит регистра ISR ведущей БИС только при равенстве всех битов регистра ISR ведомой 0;


