МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ФАКУЛЬТЕТ АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
Кафедра « Электронных вычислительных машин »
«Исследование систем прерываний на основе контроллера прерываний
K1810BH59A для микропроцессоров К580ВМ80 и К1810ВМ86»
Отчет по лабораторной работе № 3
по дисциплине «Микропроцессорные системы».
Вариант 14
Выполнил студент группы ВМ-41 _____________ёв
(подпись)
Проверил к. т.н., доцент каф. ЭВМ _____________
(подпись)
Киров 2002 г.
1 Задание
- разработать программу инициализации ПКП для режимов фиксированных приоритетов, спецмаскирования и программного опроса;
- разработать текст пользовательской программы, во время выполнения которой приходят запросы на прерывания IRQ;
- разработать тексты подпрограмм обработки прерываний, во время выполнения которых также могут приходить запросы IRQ;
- выполнить исследования принципов обслуживания запросов для следующих дисциплин обслуживания прерываний:
1. фиксированных приоритетов;
2. специального маскирования;
3. циклического сдвига с использованием OCW2 по типу А;
4. циклического сдвига с использованием OCW2 по типу B (L2-L0 = №ППОП+Х);
5. программного опроса;
Обозначения:
8* - процессор i8080 с шагом 8
# - каскадное включение:
$ - ведомая БИС
& - ведущая БИС с PSV0
Таблица 1 – Задание на л. р.
Задание | Вариант 14 |
1. фиксированные | #$ |
2. спецмаскирование | |
3. сдвиг типа А | #& |
4. сдвиг типа В | |
5. программный опрос | 8* |
Х для типа В | 2 |
Ведомые на | 0, 4 |
Базовый адрес контроллера:
Адрес=14*10+1*2=142(Dec)=8E(Hex)
Таблица 2 – Последовательность прихода запросов на прерывание
№ варианта | Последовательность запросов IRQ |
14 | 2,6; 7,3; 0,5; 4; 6; 4,1; 3; 0,2 |
Таблица 3 – Нач. адреса ППОП для i8086 Таблица 4 – Задание для режима ПО
Основная программа | №команды относительно базы | Вариант 14 | ||
IRQ | CS | IP | ||
4 11 18 | 3 5 6,3 | 000h | 000h | |
ППОП 0 1 2 3 4 5 6 7 | 3 3 4 2 1 6 3 4 | 386h 825h 279h 0DCh 000h 7A7h AAAh 121h | 090h 100h 120h 040h 070h 080h 050h 060h |
Номер команды чтения СС ПКП | Вариант 14 |
№ команды поступления IRQ | |
6 | 5 |
9 | 9 |
11 | |
14 | 13 |
18 | 18 |
2 Режим фиксированных приоритетов
Каскадное включение, ведомая БИС (#$):
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│000│jmp 160h │ 1 ││ переход к инициализации │
│ инициализация │
│160│mov al,b │ 1 ││icw1 (ведомая, загрузка icw4 ) │
│161│out 8eh, al │ 1 ││ │
│162│mov al,0 │ 1 ││icw2 (адрес IDT) │
│163│out 8fh, al │ 1 ││ │
│164│mov al,b │ 1 ││icw3 (№ IRQ к кот. подкл. вых. │
│165│out 8fh, al │ 1 ││ INT ведомой ) │
│166│mov al,b │ 1 ││icw4 (i86) │
│167│out 8fh, al │ 1 ││ │
│168│mov al,b │ 1 ││ocw3 (чтение ISR) │
│169│out 8eh, al │ 1 ││ │
│16A│jmp 01h │ 1 ││ │
│ │ │ │ │ │
│080│push ax │ 1 ││ППОП 5 │
│081│sti │ 1 ││ │
│082│sub al, bl │ 1 ││ │
│083│dec ax │ 1 ││ │
│084│dec ax │ 1 ││ │
│085│mov al, bl │ 1 ││* │
│086│inc bl │ 1 ││ │
│087│add al, bl │ 1 ││ │
│088│dec ax │ 1 ││ │
│089│inc ax │ 1 ││ │
│08A│dec ax │ 1 ││ │
│08B│cli │ 1 ││ │
│08C│call 140h │ 1 ││переход на проц. сброса ISR │
│08D│pop ax │ 1 ││ │
│08E│iret │ 1 ││ │
│140│mov al,b │ 1 ││ocw2 (сброс ISR в ведомой) │
│141│out 8Eh, al │ 1 ││ │
│142│in al,8Eh │ 1 ││ │
│143│cmp al,0 │ 1 ││проверка на 0 в ISR ведомой │
│144│jnz 147h │ 1 ││ │
│145│mov al,b │ 1 ││ocw2 (сброс ISR в ведущей) │
│146│out 8Ch, al │ 1 ││8С – адрес порта ведущей │
│147│ret │ 1 ││ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
Диаграмма прерываний для режима фиксированных приоритетов:
0┤ ▒▒░░ ▒▒░░
│ ││││ ││││
1┤ ││││ ▒▒░░ ││││
│ ││││ ││││ ││││
2┤ ▒▒░░ ││││ ││││ ││││▒▒░░
│ ││││ ││││ ││││ ││││││││
3┤▒▒││││░░▒▒││││░░ ││││▒▒││││││││░░ ▒▒░░
│││││││││││││││││ ││││││││││││││││ ││││
4┤││││││││││││││││▒▒░░ ││││││││││││││││▒▒░░ ││││
│││││││││││││││││││││ ││││││││││││││││││││ ││││
5┤││││││││││││││││││││▒▒││││││││││││││││││││░░ ▒▒░░││││
│││││││││││││││││││││││││││││││││││││││││││││ ││││││││
6┤││││││││││││││││││││││││││││││││││││││││││││▒▒░░ ││││││││▒▒░░
│││││││││││││││││││││││││││││││││││││││││││││││││ ││││││││││││
7┤││││││││││││││││││││││││││││││││││││││││││││││││▒▒░░││││││││││││
│││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││
└────────────────────────────────────────────────────────────────────
3 Режим спец. маскирования
Бескаскадное включение():
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│000│jmp 160h │ 1 ││ переход к инициализации │
│ инициализация │
│160│mov al,b │ 1 ││icw1 (icw4, 1 ведущая) │
│161│out 8eh, al │ 1 ││ │
│162│mov al,0 │ 1 ││icw2 (адрес IDT) │
│163│out 8fh, al │ 1 ││ │
│164│mov al,b │ 1 ││icw4 (i86, ведущий с ~EN) │
│165│out 8fh, al │ 1 ││ │
│166│mov al,b │ 1 ││ocw3 (спец. маскирование) │
│167│out 8eh, al │ 1 ││ │
│168│jmp 01h │ 1 ││ │
│ │ │ │ │ │
│100│push ax │ 1 ││ППОП 1 │
│101│push bx │ 1 ││ │
│102│sti │ 1 ││ │
│103│mov bl, ah │ 1 ││ │
│104│inc ax │ 1 ││ │
│105│dec bx │ 1 ││* │
│106│xor bx, bx │ 1 ││ │
│107│sub bx,34h │ 1 ││ │
│108│or ax, bx │ 1 ││ │
│109│dec ax │ 1 ││ │
│10A│cli │ 1 ││ │
│10B│mov al,b │ 1 ││ocw2(сброс ISR по L2-L0) │
│10C│out 8Eh, al │ 1 ││ │
│10D│pop bx │ 1 ││ │
│10E│pop ax │ 1 ││ │
│10F│iret │ 1 ││ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
Диаграмма прерываний для режима специального маскирования:
0┤ ▒▒ ░░▒▒░░
│ ││ ││││││
1┤ ││ ▒▒ ░░││││││
│ ││ ││ ││││││││
2┤ ▒▒ ││ ││ ││││││││ ░░▒▒░░
│ ││ ││ ││ ││││││││ ││││││
3┤▒▒││ ││ ││ ││││││││ ││││││░░▒▒░░ ▒▒ ░░
│││││ ││ ││ ││││││││ ││││││││││││ ││ ││
4┤││││ ││ ▒▒░░ ││▒▒░░││││││││ ││││││││││││ ││ ││
│││││ ││ ││││ ││││││││││││││ ││││││││││││ ││ ││
5┤││││ ││▒▒││││░░││││││││││││││ ││││││││││││▒▒░░││ ││
│││││ ││││││││││││││││││││││││ ││││││││││││││││││ ││
6┤││││▒▒ ││││││││││││││││││││││││ ░░▒▒░░││││││││││││││││││▒▒░░││
│││││││ ││││││││││││││││││││││││ ││││││││││││││││││││││││││││││
7┤││││││▒▒││││││││││││││││││││││││░░││││││││││││││││││││││││││││││
│││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││
└─────────────────────────────────────────────────────────────────────
4 Режим циклического сдвига по типу А
Каскадное включение: ведущая БИС с PSV (#&):
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│000│jmp 160h │ 1 ││ переход к инициализации │
│ инициализация │
│160│mov al,b │ 1 ││icw1(icw4, ведущая и ведомая) │
│161│out 8eh, al │ 1 ││ │
│162│mov al,0 │ 1 ││icw2(адрес IDT) │
│163│out 8fh, al │ 1 ││ │
│164│mov al,b │ 1 ││icw3(ведомая к 0 и 4) │
│165│out 8fh, al │ 1 ││ │
│166│mov al,b │ 1 ││icw4(ведущая с ~EN, PSV) │
│167│out 8fh, al │ 1 ││ │
│168│jmp 01h │ 1 ││ │
│ │ │ │ │ │
│ │ ППОП ВЕДОМОЙ БИС │
│070│push ax │ 1 ││ППОП 4 ВЕДОМОЙ │
│071│push bx │ 1 ││ │
│072│sti │ 1 ││ │
│073│dec ax │ 1 ││* │
│074│sub ax,5h │ 1 ││ │
│075│and al, ah │ 1 ││ │
│076│mov ax, bx │ 1 ││ │
│077│xor ax, ax │ 1 ││ │
│078│mov bl, ah │ 1 ││ │
│079│dec ax │ 1 ││ │
│07A│cli │ 1 ││ │
│07B│call 140h │ 1 ││очиска ISR │
│07C│pop bx │ 1 ││ │
│07D│pop ax │ 1 ││ │
│07E│iret │ 1 ││ │
│ │ │ │ │ │
│140│mov al,b │ 1 ││ocw2 для ведомой │
│141│out 98h, al │ 1 ││ │
│142│in al,98h │ 1 ││чтение ведомой │
│143│cmp al,0 │ 1 ││ │
│144│jnz 147h │ 1 ││выход │
│145│mov al,b │ 1 ││ocw2 для ведущей │
│146│out 8eh, al │ 1 ││ │
│147│ret │ 1 ││ │
│ │ ППОП ВЕДУЩЕЙ БИС │
│120│push ax │ 1 ││ППОП 2 ВЕДУЩЕЙ │
│121│in al,8fh │ 1 ││чтение маски (ocw1) │
│122│or al,b │ 1 ││маска на прерывание │
│123│out 8fh, al │ 1 ││ │
│124│sti │ 1 ││ │
│125│and al, ah │ 1 ││ │
│126│mov ax, bx │ 1 ││ │
│127│xor ax, ax │ 1 ││ │
│128│mov bl, ah │ 1 ││ │
│129│dec ax │ 1 ││ │
│12A│dec ax │ 1 ││ │
│12B│cli │ 1 ││ │
│12C│mov al,b │ 1 ││ocw2 │
│12D│out 8Eh, al │ 1 ││ │
│12E│in al,8fh │ 1 ││чтение маски │
│12F│and al,b │ 1 ││размаскирование прерывания │
│130│out 8fh, al │ 1 ││ │
│131│pop ax │ 1 ││ │
│132│iret │ 1 ││ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
Диаграмма прерываний для режима циклического сдвига по типу А
0┤ ▒▒▒▒░░
│ ││││││
1┤ ││││││▒▒░░
│ ││││││││││
2┤ ▒▒░░ ││││││││││▒▒░░
│ ││││ ││││││││││││││
3┤▒▒││││▒▒░░ ││││││││││││││▒▒░░ ▒▒░░
│││││││││││ ││││││││││││││││││ ││││
4┤││││││││││ ▒▒░░ ││││││││││││││││││▒▒░░ ││││
│││││││││││ ││││ ││││││││││││││││││││││ ││││
5┤││││││││││▒▒││││░░ ││││││││││││││││││││││▒▒░░ ││││
│││││││││││││││││││ ││││││││││││││││││││││││││ ││││
6┤││││││││││││││││││▒▒░░ ││││││││││││││││││││││││││▒▒░░││││
│││││││││││││││││││││││ ││││││││││││││││││││││││││││││││││
7┤││││││││││││││││││││││▒▒░░││││││││││││││││││││││││││││││││││
│││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││
└───────────────────────────────────────────────────────────────────
5 Режим циклического сдвига по типу B (X=2)
Бескаскадное включение ():
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│000│jmp 160h │ 1 ││ переход к инициализации │
│ инициализация │
│160│mov al,b │ 1 ││icw1(icw4, 1 ведущая) │
│161│out 8eh, al │ 1 ││ │
│162│mov al,0 │ 1 ││icw2(адрес IDT) │
│163│out 8fh, al │ 1 ││ │
│164│mov al,b │ 1 ││icw4(i86) │
│165│out 8fh, al │ 1 ││ │
│166│jmp 01h │ 1 ││ │
│ │ │ │ │ │
│120│push ax │ 1 ││ППОП 2 │
│121│push bx │ 1 ││ │
│122│sti │ 1 ││ │
│123│dec ax │ 1 ││ │
│124│xor bx, bx │ 1 ││ │
│125│sub ax,6h │ 1 ││ │
│126│or ax, bx │ 1 ││ │
│127│add bx, ax │ 1 ││ │
│128│dec ax │ 1 ││ │
│129│cli │ 1 ││ │
│12A│mov al,b │ 1 ││ocw2(тип B №ППОП+2) │
│12B│out 8Eh, al │ 1 ││ │
│12C│pop bx │ 1 ││ │
│12D│pop ax │ 1 ││ │
│12E│iret │ 1 ││ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
Диаграмма прерываний для режима циклического сдвига по типу B
0┤ ▒▒░░ ▒▒░░
│ ││││ ││││
1┤ ││││ ▒▒░░ ││││
│ ││││ ││││ ││││
2┤ ▒▒░░ ││││ ││││ ▒▒░░ ││││
│ ││││ ││││ ││││ ││││ ││││
3┤▒▒││││ ││││░░▒▒││││ ││││ ░░││││▒▒░░ ▒▒░░
│││││││ ││││││││││││ ││││ ││││││││││ ││││
4┤││││││ ││││││││││││▒▒░░ ││││ ││││││││││ ││││
│││││││ ││││││││││││││││ ││││ ││││││││││ ││││
5┤││││││ ▒▒░░││││││││││││││││ ││││ ││││││││││▒▒░░││││
│││││││ ││││││││││││││││││││ ││││ ││││││││││││││││││
6┤││││││▒▒││││││││││││││││││││ ││││░░▒▒░░││││││││││││││││││▒▒░░
│││││││││││││││││││││││││││││ ││││││││││││││││││││││││││││││││
7┤││││││││││││││││││││││││││││▒▒░░││││││││││││││││││││││││││││││││
│││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││
└──────────────────────────────────────────────────────────────────────
6 Режим программного опроса
Процессор i8080 с шагом 8 (8*):
┌───┬──────────────────────────────┬─────┬────────┬──────────────────────────────┐
│ N%│ Команда │^INTA│ IRQ7-0 │ Комментарии │
├───┼──────────────────────────────┼─────┼────────┼──────────────────────────────┤
│000│jmp 160h │ 1 ││ переход к инициализации │
│ инициализация │
│160│cli │ 1 ││ │
│161│mov al,b │ 1 ││icw1(i80 с щагом 8, 1 БИС) │
│162│out 8eh, al │ 1 ││ │
│163│mov al,0 │ 1 ││icw2 │
│164│out 8fh, al │ 1 ││ │
│165│jmp 01h │ 1 ││ │
│ │ полпрограмма чтения СС и формирования адреса ППОП │
│020│push ax │ 1 ││ │
│021│push bx │ 1 ││ │
│022│mov al,b │ 1 ││ocw3(прогр. опрос) │
│023│out 8eh, al │ 1 ││ │
│024│in al,8eh │ 1 ││Чтение СС ПКП │
│025│mov bl, al │ 1 ││ │
│026│and al,b │ 1 ││проверка на прерывание │
│027│jz 30h │ 1 ││если нет прерыв.,то конец │
│028│mov al, bl │ 1 ││ │
│029│and al,b │ 1 ││выделение вектора │
│02A│shl al,3 │ 1 ││получ. адреса в ПМ │
│02B│mov bl, al │ 1 ││ │
│02C│mov ax,[bl] │ 1 ││получение адреса ППОП │
│02D│call ax │ 1 ││переход к ППОП │
│02E│mov al,b │ 1 ││ocw2 (сброс ISR) │
│02F│out 8eh, al │ 1 ││ │
│030│pop bx │ 1 ││ │
│031│pop ax │ 1 ││ │
│032│ret │ 1 ││ │
│ │ ППОП2 │
│120│push ax │ 1 ││ППОП 2 │
│121│push bx │ 1 ││ │
│122│dec ax │ 1 ││ │
│123│inc bx │ 1 ││ │
│124│dec ax │ 1 ││ │
│125│mov bx, ax │ 1 ││ │
│126│xor ax, ax │ 1 ││ │
│127│sub bx,8h │ 1 ││ │
│128│add ax, bx │ 1 ││ │
│129│or bh, al │ 1 ││ │
│12A│inc ax │ 1 ││ │
│12B│dec ax │ 1 ││ │
│12C│pop bx │ 1 ││ │
│12D│pop ax │ 1 ││ │
│12E│ret │ 1 ││ │
└───┴──────────────────────────────┴─────┴────────┴──────────────────────────────┘
Диаграмма прерываний для режима программного опроса
0┤ ▒▒░░ │ ││││ 1┤ ││││ │ ││││ 2┤▒▒░░ ││││ │││││ ││││ 3┤││││▒▒░░ ││││ │││││││││ ││││ 4┤││││││││ ││││▒▒░░ │││││││││ ││││││││ 5┤││││││││ ││││││││ │││││││││ ││││││││ 6┤││││││││▒▒░░││││││││ │││││││││││││││││││││ 7┤││││││││││││││││││││ │││││││││││││││││││││ └────────────────────────── |
|


