Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

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

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

профессионального образования

ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

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

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

«Изучение систем обработки прерываний на основе

периферийной БИС i8259A»

Отчет

Лабораторная работа №2 по дисциплине

«Микропроцессорные системы»

Вариант 4

Выполнил студент группы ВМ-41 ____________________//

Проверил ________________________________________//

Киров 2007


1 Задание

- разработать программу инициализации ПКП для режимов фиксированных приоритетов, спецмаскирования и программного опроса;

- разработать текст пользовательской программы во время выполнения которой приходят запросы на прерывание IRQ;

- разработать также тексты подпрограмм обработки прерываний, во время выполнения которых также могут приходить запросы IRQ;

- выполнить исследования принципов обслуживания запросов для следующих дисциплин обслуживания прерываний:

1. фиксированных приоритетов;

2. специального маскирования;

3. циклического сдвига с использованием OCW2 формата RE по типу А;

4. циклического сдвига с использованием OCW2 формата - RSE по типу В ( L2-L0 = №ППОП + X );

5. программного опроса.

Обозначения:

4* - процессор i8080 c шагом 4

8* - процессор i8080 c шагом 8

# - Каскадное включение:

$ - ведомая БИС

&- ведущая БИС с PSV

Таблица 1

Задание

Вариант19

1 фиксированные

#&

2 спецмаскир.

3 сдвиг типа А

#$4*

4 сдвиг типа В

5 прогр. опрос

Х для типа В

2

Ведомые на:

0,7

Базовый адрес для ПКП будет: 4*10+1*2=42(dec) = 2Ah (hex)

НЕ нашли? Не то? Что вы ищете?

Начальные адреса ППОП для микропроцессора i8086

Основная программа

N команды

Вариант 4

IRQ

CS

IP

5

10

13

0

3

4,2

000h

000h

ППОП

0

1

2

3

4

5

6

7

3

4

2

5

4

6

4

5

486h

325h

279h

1DCh

300h

8A7h

BAAh

421h

100h

110h

040h

080h

060h

050h

090h

070h

Задание для режима программного опроса.

№ команды чтения СС ПКП

№ команды поступления IRQ

4

5

9

8

12

14

13

19

18

Последовательность поступления запросов на прерывания:

5,7; 6,0; 4,7; 2; 5; 4,1; 0; 1,3

1 Текст программы для режима фиксированных приоритетов, процессор i8086, каскадное включение, ведущая с PSV.

┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐

│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │

├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤

│000│call 20h │ 1 ││инициализация i8086 │

│001│mov al,1 │ 1 ││ФИКСИР ВЕДУЩАЯ С PSV │

│002│mov dl,1 │ 1 ││ │

│003│add al, dl │ 1 ││ │

│004│mov dl,16 │ 1 ││ │

│005│sub al,5 │ 1 ││* │

│006│sub al, dl │ 1 ││ │

│007│push ax │ 1 ││ │

│008│push dx │ 1 ││ │

│009│mov al,1 │ 1 ││ │

│00A│mov dl,17 │ 1 ││* │

│00B│add al, dl │ 1 ││ │

│00C│inc al │ 1 ││ │

│00D│inc dl │ 1 ││** │

│00E│sub al, dl │ 1 ││ │

│00F│inc al │ 1 ││ │

│010│mov al, dl │ 1 ││ │

│011│not al │ 1 ││ │

│012│or al,16 │ 1 ││ │

│013│inc dl │ 1 ││ │

│014│dec al │ 1 ││ │

│015│mov dl, al │ 1 ││ │

│016│sub al,13 │ 1 ││ │

│017│pop dx │ 1 ││ │

│018│pop ax │ 1 ││ │

│019│mov al, dl │ 1 ││ │

│01A│not al │ 1 ││ │

│01B│ │ │ │ │

│01F│ │ │ │ │

│020│mov al,b │ 1 ││UP=0 | каскадн | загр ICW4 │

│021│out 2ah, al │ 1 ││загрузка ICW1 │

│022│mov al,b │ 1 ││адрес IDT 020h │

│023│out 2bh, al │ 1 ││загрузка ICW2 │

│024│mov al,b │ 1 ││ведомые на 0,7 │

│025│out 2bh, al │ 1 ││загрузка ICW3 │

│026│mov al,b │ 1 ││PSV=1 | AEOI=0 | i8086 │

│027│out 2bh, al │ 1 ││загрузка ICW4 │

│028│ret │ 1 ││ │

│029│ │ │ │ │

│03F│ │ │ │ППОП 2 │

│040│push ax │ 1 ││ │

│041│push dx │ 1 ││ │

│042│mov dl,b │ 1 ││формирование маски │

│043│call 0f0h │ 1 ││установка маски │

│044│sti │ 1 ││разрешить прерывания │

│045│dec al │ 1 ││обработчик │

│046│cli │ 1 ││ │

│047│mov al,b │ 1 ││EOI | clear ISR │

│048│out 2ah, al │ 1 ││загрузка OCW2 │

│049│mov dl,b │ 1 ││размаскирование │

│04A│call 0f5h │ 1 ││сброс маски │

│04B│sti │ 1 ││ │

│04C│pop dx │ 1 ││ │

│04D│pop ax │ 1 ││восстановление AL │

│04E│iret │ 1 ││ │

│0FF│ │ │ │ППОП 0 │

│100│sti │ 1 ││разрешить прерывания │

│101│push ax │ 1 ││сохранение AL │

│102│mov al,1 │ 1 ││0 │

│103│add al,16 │ 1 ││обработчик │

│104│dec al │ 1 ││обработчик │

│105│mov al,b │ 1 ││сброс бита ISR(ведомый) │

│106│out 2ch, al │ 1 ││запись OCW2 │

│107│in al, 2ch │ 1 ││читаем ISR │

│108│test al, 00h │ 1 ││проверяем на рав. 0 │

│109│jnz 10ch │ 1 ││если не равно то к 10c │

│10A│mov al,b │ 1 ││EOI | clear ISR │

│10B│out 2ah, al │ 1 ││загрузка OCW2 │

│10C│pop ax │ 1 ││восстановление AL │

│10D│iret │ 1 ││ │

Диаграмма прерываний

0┤▒▒░░ ▒▒░░ ▒▒░░

│││││ ││││ ││││

1┤││││ ││││ ▒▒││││░░▒▒░░

│││││ ││││ ││││││││││││

2┤││││ ││││ ▒▒░░ ││││││││││││ ▒▒░░

│││││ ││││ ││││ ││││││││││││ ││││

3┤││││ ││││ ││││ ││││││││││││▒▒░░ ▒▒░░││││

│││││ ││││ ││││ ││││││││││││││││ ││││││││

4┤││││ ││││▒▒││││░░ ││││││││││││││││▒▒░░ ││││││││▒▒░░

│││││ ││││││││││││ ││││││││││││││││││││ ││││││││││││

5┤││││▒▒││││││││││││▒▒││││││││││││││││││││░░ ││││││││││││

│││││││││││││││││││││││││││││││││││││││││││ ││││││││││││

6┤││││││││││││││││││││││││││││││││││││││││││▒▒░░ ││││││││││││

│││││││││││││││││││││││││││││││││││││││││││││││ ││││││││││││

7┤││││││││││││││││││││││││││││││││││││││││││││││▒▒░░││││││││││││

│││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││

└─────────────────────────────────────────────────────────────────────────────

2.Текст программы для режима специального маскирования

┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐

│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │

├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤

│000│mov al,b │ 1 ││ │

│001│out 2ah, al │ 1 ││Загрузка ICW1 │

│002│mov al,08h │ 1 ││ │

│003│out 2bh, al │ 1 ││Загрузка ICW2 │

│004│mov al,b │ 1 ││ │

│005│out 2bh, al │ 1 ││Загрузка ICW4 │

│006│mov al,b │ 1 ││ │

│007│out 2ah, al │ 1 ││Установка спецмаскирования │

│008│jmp 10h │ 1 ││ │

│009│ │ │ │ │

│00F│ │ │ │ │

│010│nop │ 1 ││1 │

│011│nop │ 1 ││2 │

│012│nop │ 1 ││3 │

│013│nop │ 1 ││4 │

│014│nop │ 1 ││5 │

│015│nop │ 1 ││6 │

│016│nop │ 1 ││7 │

│017│nop │ 1 ││8 │

│018│nop │ 1 ││9 │

│019│nop │ 1 ││10 │

│01A│nop │ 1 ││11 │

│01B│nop │ 1 ││12 │

│01C│nop │ 1 ││13 │

│01D│nop │ 1 ││14 │

│01E│nop │ 1 ││15 │

│01F│nop │ 1 ││16 │

│020│nop │ 1 ││17 │

│021│nop │ 1 ││18 │

│022│ │ │ │ │

│03F│ │ │ │ │

│040│push ax │ 1 ││ППОП IRQ2 │

│041│sti │ 1 ││ │

│042│inc ax │ 1 ││ │

│043│add ax, ax │ 1 ││ │

│044│ror ax,2 │ 1 ││ │

│045│shl ax,4 │ 1 ││ │

│046│cli │ 1 ││ │

│047│mov al,62h │ 1 ││ │

│048│out 2ah, al │ 1 ││Сброс бита ISR │

│049│pop ax │ 1 ││ │

│04A│iret │ 1 ││ │

Диаграмма прерываний

────────────────────────────────────────────────────────────────────────────────

0┤▒▒ ░░▒▒░░

│││ ││││││

1┤││ ▒▒ ░░▒▒░░ ││││││

│││ ││ ││││││ ││││││

2┤││ ▒▒░░ ││ ││││││ ││││││ ▒▒ ░░

│││ ││││ ││ ││││││ ││││││ ││ ││

3┤││ ││││ ││ ▒▒░░││││││ ││││││▒▒░░││ ││

│││ ││││ ││ ││││││││││ ││││││││││││ ││

4┤││ ▒▒││││░░ ││▒▒░░││││││││││ ││││││││││││▒▒░░││

│││ ││││││││ ││││││││││││││││ ││││││││││││││││││

5┤││▒▒ ││││││││ ││││││││││││││││ ░░▒▒░░││││││││││││││││││

│││││ ││││││││ ││││││││││││││││ ││││││││││││││││││││││││

6┤││││ ▒▒││││││││░░ ││││││││││││││││ ││││││││││││││││││││││││

│││││ ││││││││││││ ││││││││││││││││ ││││││││││││││││││││││││

7┤││││▒▒││││││││││││░░▒▒││││││││││││││││░░││││││││││││││││││││││││

│││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││

└─────────────────────────────────────────────────────────────────────────────

4. Текст программы для режима циклического сдвига по типу А, каскадное включение, ведомая БИС, i8080 шаг 4

┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐

│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │

├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤

│000│call 20h │ 1 ││ПП инициализации │

│001│mov ax, F00Fh │ 1 ││ │

│002│mov cx, 0FF0h │ 1 ││ │

│003│mov dx, 0FF0h │ 1 ││ │

│004│mov bx, F00Fh │ 1 ││ │

│005│mov si, 1001h │ 1 ││ │

│006│mov di, 0110h │ 1 ││ │

│007│sub ax, si │ 1 ││ │

│008│sub cx, di │ 1 ││ │

│009│sub dx, di │ 1 ││ │

│00A│sub bx, si │ 1 ││ │

│00B│nop │ 1 ││ │

│00C│nop │ 1 ││ │

│00D│nop │ 1 ││ │

│00E│xor ax, ax │ 1 ││ │

│00F│xor bx, bx │ 1 ││ │

│010│xor cx, cx │ 1 ││ │

│011│xor dx, dx │ 1 ││ │

│012│sub bx, dx │ 1 ││ │

│013│mov dx, ax │ 1 ││ │

│014│mov ax, bx │ 1 ││ │

│015│mov dx,5h │ 1 ││ │

│016│add dx, ax │ 1 ││ │

│017│inc ax │ 1 ││ │

│018│dec bx │ 1 ││ │

│019│inc ax │ 1 ││ │

│01A│ │ │ │ │

│01F│ │ │ │ │

│020│mov al,b │ 1 ││ │

│021│out 2ah, al │ 1 ││загрузка ICW1 │

│022│mov al,b │ 1 ││старший байт адреса │

│023│out 2bh, al │ 1 ││загрузка ICW2 │

│024│mov al,b │ 1 ││ │

│025│out 2bh, al │ 1 ││загрузка ICW3 │

│026│mov al, b │ 1 ││ │

│027│out 2bh, al │ 1 ││загрузка ICW4 │

│028│mov al, b │ 1 ││ │

│029│out 2ah, al │ 1 ││загрузка OCW3 │

│02A│ret │ 1 ││ │

│02B│ │ │ │ │

│03F│ │ │ │ │

│040│push ax │ 1 ││ППОП №2 │

│041│pushf │ 1 ││ │

│042│sti │ 1 ││ │

│043│dec ax │ 1 ││ │

│044│inc ax │ 1 ││ │

│045│cmp ax,10h │ 1 ││ │

│046│dec ax │ 1 ││ │

│047│inc ax │ 1 ││ │

│048│cli │ 1 ││ │

│049│mov al,b │ 1 ││сброс бита в ISR │

│04A│out 2ah, al │ 1 ││загрузка OCW2 │

│04B│call 180h │ 1 ││ │

│04C│popf │ 1 ││ │

│04D│pop ax │ 1 ││ │

│04E│ret │ 1 ││ │

│04F│ │ │ │ │

│09F│ │ │ │шаг 4 │

│0A0│jmp 100h │ 1 ││ППОП 0 │

│0A1│ │ │ │ │

│0A2│ │ │ │ │

│0A3│ │ │ │ │

│0A4│jmp 110h │ 1 ││ППОП 1 │

│0A5│ │ │ │ │

│0A6│ │ │ │ │

│0A7│ │ │ │ │

│0A8│jmp 040h │ 1 ││ППОП 2 │

│0A9│ │ │ │ │

│0AA│ │ │ │ │

│0AB│ │ │ │ │

│0AC│jmp 080h │ 1 ││ППОП 3 │

│0AD│ │ │ │ │

│0AE│ │ │ │ │

│0AF│ │ │ │ │

│0B0│jmp 060h │ 1 ││ППОП 4 │

│0B1│ │ │ │ │

│0B2│ │ │ │ │

│0B3│ │ │ │ │

│0B4│jmp 050h │ 1 ││ППОП 5 │

│0B5│ │ │ │ │

│0B6│ │ │ │ │

│0B7│ │ │ │ │

│0B8│jmp 090h │ 1 ││ППОП 6 │

│0B9│ │ │ │ │

│0BA│ │ │ │ │

│0BB│ │ │ │ │

│0BC│jmp 070h │ 1 ││ППОП 7 │

│0BD│ │ │ │ │

│17F│ │ │ │ │

│180│in al, 2ah │ 1 ││ Сброс ISR ведущей │

│181│cmp al, 0 │ 1 ││ │

│182│jnz 185h │ 1 ││ │

│183│mov al, b │ 1 ││ │

│184│out 28h, al │ 1 ││ │

│185│ret │ 1 ││ │

Диаграмма прерываний

0┤▒▒░░ ▒▒░░ ▒▒░░

│││││ ││││ ││││

1┤││││ ││││ ││││▒▒░░

│││││ ││││ ││││││││

2┤││││ ││││▒▒░░ ││││││││ ▒▒░░

│││││ ││││││││ ││││││││ ││││

3┤││││ ││││││││ ││││││││▒▒░░▒▒░░ ││││

│││││ ││││││││ ││││││││││││││││ ││││

4┤││││ ││││││││▒▒░░ ││││││││││││││││▒▒░░││││

│││││ ││││││││││││ ││││││││││││││││││││││││

5┤││││▒▒░░ ││││││││││││▒▒░░││││││││││││││││││││││││

│││││││││ ││││││││││││││││││││││││││││││││││││││││

6┤││││││││▒▒░░ ││││││││││││││││││││││││││││││││││││││││

│││││││││││││ ││││││││││││││││││││││││││││││││││││││││

7┤││││││││││││▒▒░░││││││││││││││││││││││││││││││││││││││││

│││││││││││││││││││││││││││││││││││││││││││││││││││││││││

└─────────────────────────────────────────────────────────────────────────────

4. Текст программы для режима циклического сдвига по типу В

┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐

│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │

├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤

│000│call 20h │ 1 ││ │

│001│mov ax,2 │ 1 ││ │

│002│mov bx,3 │ 1 ││ │

│003│add bx, ax │ 1 ││ │

│004│inc cx │ 1 ││ │

│005│nop │ 1 ││ │

│006│nop │ 1 ││ │

│007│sub cx,8 │ 1 ││ │

│008│mov dx, cx │ 1 ││ │

│009│sub dx, bx │ 1 ││ │

│00A│xor cx, dx │ 1 ││ │

│00B│dec ax │ 1 ││ │

│00C│nop │ 1 ││ │

│00D│and ax, bx │ 1 ││ │

│00E│mov ax,2 │ 1 ││ │

│00F│mov bx,4 │ 1 ││ │

│010│add bx, ax │ 1 ││ │

│011│nop │ 1 ││ │

│012│ │ │ │ │

│01F│ │ │ │ │

│020│push ax │ 1 ││ │

│021│mov al,b │ 1 ││ICW1 │

│022│out 2ah, al │ 1 ││ │

│023│mov al,b │ 1 ││ICW2 │

│024│out 2bh, al │ 1 ││ │

│025│mov al,b │ 1 ││ICW4 │

│026│out 2bh, al │ 1 ││ │

│027│pop ax │ 1 ││ │

│028│ret │ 1 ││ │

│029│ │ │ │ │

│03F│ │ │ │ │

│040│push ax │ 1 ││ППОП2 │

│041│sti │ 1 ││ │

│042│sub cx, ax │ 1 ││ │

│043│inc cx │ 1 ││ │

│044│xor cx, dx │ 1 ││ │

│045│dec ax │ 1 ││ │

│046│nop │ 1 ││ │

│047│cli │ 1 ││ │

│048│mov al, b │ 1 ││ │

│049│out 2ah, al │ 1 ││ │

│04A│mov al, b │ 1 ││ │

│04B│out 2ah, al │ 1 ││ │

│04C│pop ax │ 1 ││ │

│04D│iret │ 1 ││ │

Диаграмма прерываний

0┤▒▒░░ ▒▒░░ ▒▒░░

│││││ ││││ ││││

1┤││││ ││││ ││││ ▒▒░░

│││││ ││││ ││││ ││││

2┤││││ ││││ ▒▒░░ ││││ ││││ ▒▒░░ ▒▒░░ ▒▒░░

│││││ ││││ ││││ ││││ ││││ ││││ ││││ ││││

3┤││││ ││││ ││││ ││││▒▒░░ ││││ ││││▒▒││││░░││││

│││││ ││││ ││││ ││││││││ ││││ ││││││││││││││││

4┤││││ ││││▒▒░░ ││││ ││││││││ ││││▒▒░░││││││││││││││││▒▒░░

│││││ ││││││││ ││││ ││││││││ ││││││││││││││││││││││││││││

5┤││││▒▒░░││││││││ ││││▒▒░░││││││││ ││││││││││││││││││││││││││││

│││││││││││││││││ ││││││││││││││││ ││││││││││││││││││││││││││││

6┤││││││││││││││││ ││││││││││││││││▒▒░░││││││││││││││││││││││││││││

│││││││││││││││││ ││││││││││││││││││││││││││││││││││││││││││││││││

7┤││││││││││││││││▒▒░░││││││││││││││││││││││││││││││││││││││││││││││││

│││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││

└─────────────────────────────────────────────────────────────────────────────

5. Режим программного опроса.

┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐

│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │

├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤

│000│mov al,b │ 1 ││ │

│001│out 2ah, al │ 1 ││Загрузка ICW1 │

│002│mov al,08h │ 1 ││ │

│003│out 2bh, al │ 1 ││Загрузка ICW2 │

│004│mov al,b │ 1 ││ │

│005│out 2bh, al │ 1 ││Загрузка ICW3 │

│006│mov al,b │ 1 ││ │

│007│out 2bh, al │ 1 ││Загрузка ICW4 │

│008│cli │ 1 ││ │

│009│jmp 20h │ 1 ││ │

│00A│ │ │ │ │

│00F│ │ │ │ │

│010│mov al,b │ 1 ││ │

│011│out 2ah, al │ 1 ││Загрузка OCW3 (прогр-ый опрос)│

│012│in al,2ah │ 1 ││ │

│013│or al, al │ 1 ││ │

│014│jns 17h │ 1 ││ │

│015│and al,07h │ 1 ││ │

│016│callidt │ 1 ││ │

│017│ret │ 1 ││ │

│018│ │ │ │ │

│01F│ │ │ │ │

│020│nop │ 1 ││1 │

│021│nop │ 1 ││2 │

│022│nop │ 1 ││3 │

│023│call 10h │ 1 ││4 │

│024│nop │ 1 ││5 │

│025│nop │ 1 ││6 │

│026│nop │ 1 ││7 │

│027│nop │ 1 ││8 │

│028│call 10h │ 1 ││9 │

│029│nop │ 1 ││10 │

│02A│nop │ 1 ││11 │

│02B│call 10h │ 1 ││12 │

│02C│nop │ 1 ││13 │

│02D│call 10h │ 1 ││14 │

│02E│nop │ 1 ││15 │

│02F│nop │ 1 ││16 │

│030│nop │ 1 ││17 │

│031│nop │ 1 ││18 │

│032│call 10h │ 1 ││19 │

│033│ │ │ │ │

│03F│ │ │ │ │

│040│push ax │ 1 ││ППОП IRQ2 │

│041│mov al,62h │ 1 ││ │

│042│out 2ah, al │ 1 ││ │

│043│pop ax │ 1 ││ │

│044│retf │ 1 ││ │

Диаграмма прерываний

────────────────────────────────────────────────────────────────────────────────

0┤ ▒▒░░

│ ││││

1┤ ││││

│ ││││

2┤ ││││ ▒▒░░

│ ││││ ││││

3┤ ││││ ││││

│ ││││ ││││

4┤ ││││ ▒▒░░││││

│ ││││ ││││││││

5┤ ││││▒▒░░││││││││

│ ││││││││││││││││

6┤ ││││││││││││││││

│ ││││││││││││││││

7┤ ││││││││││││││││

│ ││││││││││││││││

└─────────────────────────────────────────────────────────────────────────────

Выводы:

-  В режимах фиксированных приоритетов, спецмаскирования приоритеты входов запросов на прерывание не меняются во время работы, а в режиме циклического сдвига приоритетов приоритеты изменяются: по типу А – после завершения выполнения текущей ППОП низший приоритет присваивается номеру запроса на прерывание, завершившего обслуживание, по типу В – номеру запроса на прерывание, установленного программистом.

-  В режимах фиксированных приоритетов и циклических сдвигов во время выполнения ППОП вновь поступившие запросы на прерывание смогут прервать выполнение ППОП, если эти запросы имеют более высокий приоритет по сравнению текущим обрабатываемым запросом; а в режиме спецмаскирования ППОП будут прерывать только те запросы, которые еще не находятся в обработке (не замаскированы).

-  Во всех режимах при одновременном поступлении нескольких запросов на прерывание обрабатывается запрос с более высоким приоритетом, а также он не должен быть замаскирован (для режима спецмаскирования).

-  В режиме программного опроса определение источника прерывания выполняется непосредственно программистом путем последовательного опроса источников запроса на прерывание многократной загрузкой управляющего слова OCW3 и чтением в МПР СС ПКП.

-  При каскадном включении нужно устанавливать режим строгого упорядочения приоритетов, при этом необходимо учитывать, что разрешается прием нового запроса, только что принятого на обработку, поэтому те входы ведущей БИС, к которым не подключены ведомые БИС, должны маскироваться в начале ППОП и размаскироваться при выходе из ППОП.

-  Для ведомых БИС при каскадном включении после сброса бита в регистре ISR ведомой нужно анализировать этот регистр, и при равенстве его нулю сбрасывать соответствующий бит в ISR ведущей.

Теоретическая часть

Функциональная схема каскадного включения БИС ПКП ВН59А для

микропроцессора К1810ВМ86

1. Разработать функциональную схему каскадного включения БИС ПКП ВН59А для микропроцессора К1810ВМ86 для вариантов заданий, приведенных в таблице 2

2. Привести программу инициализации ведущей и одной ведомой БИС с настройкой на режимы работы, заданные в таблице 2:

где Ф - режим фиксированных приоритетов; А - сдвиг по типу А;

Таблица 2

Режим/вариант

4

Ведущая: режим

маска (IRQ)

А

Ведомая: режим

маска (IRQ)

Ф

6

3. Привести фрагмент тексты ППОП для ведомой и ведущей БИС ПКП (начало и конец ППОП).

Программы инициализации ведущей и ведомой БИС

- ведущая (режим сдвиг по типу А, порт 2аh)

┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐

│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │

├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤

│020│mov al,b │ 1 ││каскад, ICW4 │

│021│out 2ah, al │ 1 ││загрузка ICW1 │

│022│mov al,b │ 1 ││адрес IDT 00h │

│023│out 2bh, al │ 1 ││загрузка ICW2 │

│024│mov al,b │ 1 ││ведомая на 6 │

│025│out 2bh, al │ 1 ││загрузка ICW3 │

│026│mov al,b │ 1 ││i8086, ведущая │

│027│out 2bh, al │ 1 ││загрузка ICW4 │

│028│mov al,b │ 1 ││ │

│029│out 2ah, al │ 1 ││загрузка OCW3 │

│02A│ret │ 1 ││ │

└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘

- ведомая (IRQ ведущего – 6, режим фиксированных приоритетов, порт 38h)

┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐

│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │

├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤

│030│mov al,b │ 1 ││каскад, ICW4 │

│031│out 38h, al │ 1 ││загрузка ICW1 │

│032│mov al,b │ 1 ││адрес IDT 40h │

│033│out 39h, al │ 1 ││загрузка ICW2 │

│034│mov al,b │ 1 ││ведомая на 6 │

│035│out 39h, al │ 1 ││загрузка ICW3 │

│036│mov al,b │ 1 ││i8086, ведомая │

│037│out 39h, al │ 1 ││загрузка ICW4 │

│038│ret │ 1 ││ │

└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘

ППОП ведущей и ведомой БИС

- ППОП ведущей (режим сдвиг по типу А, порт 2аh, ведомая на IRQ 6)

┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐

│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │

├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤

│070│sti │ 1 ││разрешить прерывания │

│071│push ax │ 1 ││сохранение AL │

│072│nop │ 1 ││ │

│073│nop │ 1 ││* │

│074│nop │ 1 ││ │

│075│cli │ 1 ││запрет прерываний │

│076│mov al,b │ 1 ││SEOI | clear ISR │

│077│out 2ah, al │ 1 ││загрузка OCW2 │

│078│pop ax │ 1 ││восстановление AL │

│079│iret │ 1 ││возврат │

└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘

-  ППОП ведомой (IRQ ведущего – 6, режим фиксированных приоритетов, порт 38h)

┌──┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐

│N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │

├──┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤

│00│sti │ 1 ││разрешить прерывания │

│01│push ax │ 1 ││сохранение AL │

│02│mov al,1 │ 1 ││обработчик │

│03│add al,16 │ 1 ││обработчик │

│04│dec al │ 1 ││обработчик │

│05│mov al,b │ 1 ││сброс бита ISR(ведомый) │

│06│out 38h, al │ 1 ││запись OCW2 │

│07│in al, 38h │ 1 ││читаем ISR │

│08│test al, 00h │ 1 ││проверяем на рав. 0 │

│09│jnz 0ch │ 1 ││если не равно то к 0c │

│0A│mov al,b │ 1 ││EOI | clear ISR │

│0B│out 2ah, al │ 1 ││загрузка OCW2 │

│0C│pop ax │ 1 ││восстановление AL │

│0D│iret │ 1 ││ │

└──┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘