ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение
высшего профессионального образования

Вятский государственный университет

Факультет автоматики и вычислительной техники

Кафедра электронных вычислительных машин

" Обработка прерываний на основе БВПП 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;