ПМСУ1(5)
.docРоссийская Федерация
Ханты-Мансийский автономный округ – ЮГРА
Департамент образования и науки
Сургутский государственный университет ХМАО
Инженерно-физический факультет
Кафедра автоматики и компьютерных систем
ОТЧЕТ
по лабораторной работе № 6
по дисциплине «Вычислительные машины, системы и сети»
Выполнили:
Принял: Запевалов А. В.
Сургут
Цель работы: исследование работы контролера приоритетных прерываний.
1. Задание к работе.
Разработать программу, которая в основной подпрограмме выводит на дисплей слово – НОГА. При нажатии на кнопку соответствующую, входам IRQ КПр на дисплей выводятся слова:
4 - ПЕЧЕНЬ
5 - ЧЕРЕП
1 - РЕБРО
Рис. 1 Блок схема основной подпрограммы.
Рис. 2 Блок схема подпрограммы прерывания
Таблица 1.
Адрес |
Метка |
М. код |
Асс. Код |
Комментарии |
0810 |
|
3E |
MVI A,74 |
КИ 1 |
0811 |
|
74 |
|
|
0812 |
|
D3 |
OUT 98 |
|
0813 |
|
98 |
|
|
0814 |
|
D3 |
OUT 9C |
|
0815 |
|
9C |
|
|
0816 |
|
3E |
MVI A,08 |
КИ 2 |
0817 |
|
08 |
|
|
0818 |
|
D3 |
OUT 99 |
|
0819 |
|
99 |
|
|
081A |
|
D3 |
OUT 9D |
|
081B |
|
9D |
|
|
081C |
|
3E |
MVI A,81 |
КИ 3 MASTER |
081D |
|
81 |
|
|
081E |
|
D3 |
OUT 99 |
|
081F |
|
99 |
|
|
0820 |
|
3E |
MVI A,07 |
КИ 3 SLAVE |
0821 |
|
07 |
|
|
0822 |
|
D3 |
OUT 9D |
|
0823 |
|
9D |
|
|
0824 |
|
3E |
MVI A,CD |
КO 1 MASTER |
0825 |
|
CD |
|
|
0826 |
|
D3 |
OUT 99 |
|
0827 |
|
99 |
|
|
0828 |
|
3E |
MVI A,FF |
КO 1 SLAVE |
0829 |
|
FF |
|
|
082A |
|
D3 |
OUT 9D |
|
082B |
|
9D |
|
|
082C |
|
3E |
MVI A,C3 |
КO 2 |
082D |
|
C3 |
|
|
082E |
|
D3 |
OUT 98 |
|
082F |
|
98 |
|
|
0830 |
|
D3 |
OUT 9C |
|
0831 |
|
9C |
|
|
0832 |
|
3E |
MVI A,00 |
|
0833 |
|
00 |
|
|
0834 |
|
D3 |
OUT B3 |
|
0835 |
|
B1 |
|
|
0836 |
|
D3 |
OUT B2 |
|
0837 |
|
B2 |
|
|
0838 |
|
D3 |
OUT B1 |
|
0839 |
|
B3 |
|
|
083A |
|
FB |
EI |
Разрешение прерываний |
083B |
M2 |
11 |
LXI D,0906 |
Инициализация указателя на массив букв |
083C |
|
06 |
|
|
083D |
|
09 |
|
Инициализация указателя на ячейки 0BFA - 0BFF |
083E |
|
21 |
LXI H, 0BFA |
|
083F |
|
FA |
|
|
0840 |
|
0B |
|
Перенос буквы в аккумулятор Перенос буквы в в ячейку |
0841 |
M1 |
1A |
LDAX D |
|
0842 |
|
77 |
MOV M,A |
|
0843 |
|
13 |
INX D |
Инкремент указателя 1 Инкремент указателя 2 Проверка указателя 2 |
0844 |
|
2C |
INR L |
|
0845 |
|
C2 |
JNZ M1 |
|
0846 |
|
41 |
|
|
0847 |
|
08 |
|
|
0848 |
|
CD |
CALL 01C8 |
Вывод |
0849 |
|
C8 |
|
|
084A |
|
01 |
|
|
084B |
|
C3 |
JMP M2 |
Переход |
084C |
|
3B |
|
|
084D |
|
08 |
|
|
084E |
|
|
|
|
084F |
|
|
|
|
0850 |
|
|
|
|
0851 |
|
|
|
|
0852 |
|
|
|
|
0853 |
|
|
|
|
0854 |
|
|
|
|
0855 |
|
|
|
|
0856 |
|
|
|
|
0857 |
|
|
|
|
0858 |
|
|
|
|
0859 |
|
|
|
|
085A |
|
|
|
|
085B |
|
|
|
|
085C |
|
|
|
|
085D |
|
|
|
|
085E |
|
|
|
|
085F |
Начало таблицы векторов прерываний |
|||
0860 |
IRQ 0 |
|
|
|
0861 |
|
|
|
|
0862 |
|
|
|
|
0863 |
|
|
|
|
0864 |
IRQ1 |
C3 |
JMP M3 |
Вывод РЕБРО |
0865 |
|
80 |
|
|
0866 |
|
08 |
|
|
0867 |
|
|
|
|
0868 |
IRQ 2 |
|
|
|
0869 |
|
|
|
|
086A |
|
|
|
|
086B |
|
|
|
|
086C |
IRQ 3 |
|
|
|
086D |
|
|
|
|
086E |
|
|
|
|
086F |
|
|
|
|
0870 |
IRQ 4 |
C3 |
JMP M9 |
Вывод ПЕЧЕНЬ |
0871 |
|
CC |
|
|
0872 |
|
08 |
|
|
0873 |
|
|
|
|
0874 |
IRQ 5 |
C3 |
JMP M6 |
Вывод ЧЕРЕП |
0875 |
|
A4 |
|
|
0876 |
|
08 |
|
|
0877 |
|
|
|
|
0878 |
IRQ 6 |
|
|
|
0879 |
|
|
|
|
087A |
|
|
|
|
087B |
|
|
|
|
087C |
IRQ 7 |
|
|
|
087D |
|
|
|
|
087E |
|
|
|
|
087F |
|
|
|
|
0880 |
M3 |
FB |
EI |
Разрешение прерываний |
0881 |
|
F5 |
PUSH PSW |
Сохранение текущей информации в стек |
0882 |
|
C5 |
PUSH B |
|
0883 |
|
D5 |
PUSH D |
|
0884 |
|
E5 |
PUSH H |
|
0885 |
|
0E |
MVI C,F0 |
Инициализация счетчика |
0886 |
|
F0 |
|
|
0887 |
M5 |
11 |
LXI D,0900 |
Инициализация указателя на массив букв |
0888 |
|
00 |
|
|
0889 |
|
09 |
|
|
088A |
|
21 |
LXI H, 0BFA |
Инициализация указателя на ячейки 0BFA - 0BFF |
088B |
|
FA |
|
|
088C |
|
0B |
|
|
088D |
M4 |
1A |
LDAX D |
Перенос буквы в аккумулятор |
088E |
|
77 |
MOV M,A |
Перенос буквы в ячейку |
088F |
|
13 |
INX D |
Инкремент указателя 1 |
0890 |
|
2C |
INR L |
Инкремент указателя 2 |
0891 |
|
C2 |
JNZ M4 |
Проверка указетеля 2 |
0892 |
|
8D |
|
|
0893 |
|
08 |
|
|
0894 |
|
CD |
CALL 01C8 |
Вывод |
0895 |
|
C8 |
|
|
0896 |
|
01 |
|
|
0897 |
|
0D |
DCR C |
Декремент счетчика |
0898 |
|
C2 |
JNZ M5 |
Проверка счетчика |
0899 |
|
87 |
|
|
089A |
|
08 |
|
|
089B |
|
3E |
MVI A,20 |
KO 2 |
089C |
|
20 |
|
|
089D |
|
D3 |
OUT 98 |
|
089E |
|
98 |
|
|
089F |
|
E1 |
POP H |
Извлечение информации из стека |
08A0 |
|
D1 |
POP D |
|
08A1 |
|
C1 |
POP B |
|
08A2 |
|
F1 |
POP PSW |
|
08A3 |
|
C9 |
RET |
Возврат |
08A4 |
M6 |
FB |
EI |
Разрешение прерываний |
08A5 |
|
F5 |
PUSH PSW |
Сохранение текущей информации в стек |
08A6 |
|
C5 |
PUSH B |
|
08A7 |
|
D5 |
PUSH D |
|
08A8 |
|
E5 |
PUSH H |
|
08A9 |
|
0E |
MVI C,F0 |
Инициализация счетчика |
08AA |
|
F0 |
|
|
08AB |
M8 |
11 |
LXI D,08F4 |
Инициализация указателя на массив букв |
08AC |
|
F4 |
|
|
08AD |
|
08 |
|
|
08AE |
|
21 |
LXI H,0BFA |
Инициализация указателя на ячейки 0BFA - 0BFF |
08AF |
|
FA |
|
|
08B0 |
|
0B |
|
|
08B1 |
M7 |
1A |
LDAX D |
Перенос буквы в аккумулятор |
08B2 |
|
77 |
MOV M,A |
Перенос буквы в ячейку |
08B3 |
|
13 |
INX D |
Инкремент указателя 1 |
08B4 |
|
2C |
INR L |
Инкремент указателя 2 |
08B5 |
|
C2 |
JNZ M7 |
Проверка указетеля 2 |
08B6 |
|
B1 |
|
|
08B7 |
|
08 |
|
|
08B8 |
|
CD |
CALL 01C8 |
Вывод |
08B9 |
|
C8 |
|
|
08BA |
|
01 |
|
|
08BB |
|
0D |
DCR C |
Декремент счетчика |
08BC |
|
C2 |
JNZ M8 |
Проверка счетчика |
08BD |
|
AB |
|
|
08BE |
|
08 |
|
|
08BF |
|
3E |
MVI A,00 |
Обнуление триггера |
08C0 |
|
00 |
|
|
08C1 |
|
D3 |
OUT B1 |
|
08C2 |
|
B1 |
|
|
08C3 |
|
3E |
MVI A,20 |
КО 2 |
08C4 |
|
20 |
|
|
08C5 |
|
D3 |
OUT 98 |
|
08C6 |
|
98 |
|
|
08C7 |
|
E1 |
POP H |
Извлечение информации из стека |
08C8 |
|
D1 |
POP D |
|
08C9 |
|
C1 |
POP B |
|
08CA |
|
F1 |
POP PSW |
|
08CB |
|
C9 |
RET |
Возврат |
08CC |
M9 |
FB |
EI |
Разрешение прерываний |
08CD |
|
F5 |
PUSH PSW |
Сохранение текущей информации в стек |
08CE |
|
C5 |
PUSH B |
|
08CF |
|
D5 |
PUSH D |
|
08D0 |
|
E5 |
PUSH H |
|
08D1 |
|
0E |
MVI C,F0 |
Инициализация счетчика |
08D2 |
|
F0 |
|
|
08D3 |
M11 |
11 |
LXI D, 08FA |
Инициализация указателя на массив букв |
08D4 |
|
FA |
|
|
08D5 |
|
08 |
|
|
08D6 |
|
21 |
LXI H,0BFA |
Инициализация указателя на ячейки 0BFA - 0BFF |
08D7 |
|
FA |
|
|
08D8 |
|
0B |
|
|
08D9 |
M10 |
1A |
LDAX D |
Перенос буквы в аккумулятор |
08DA |
|
77 |
MOV M,A |
Перенос буквы в ячейку |
08DB |
|
13 |
INX D |
Инкремент указателя 1 |
08DC |
|
2C |
INR L |
Инкремент указателя 2 |
08DD |
|
C2 |
JNZ M10 |
Проверка указетеля 2 |
08DE |
|
D9 |
|
|
08DF |
|
08 |
|
|
08E0 |
|
CD |
CALL 01C8 |
Вывод |
08E1 |
|
C8 |
|
|
08E2 |
|
01 |
|
|
08E3 |
|
0D |
DCR C |
Декремент счетчика |
08E4 |
|
C2 |
JNZ M11 |
Проверка счетчика |
08E5 |
|
D3 |
|
|
08E6 |
|
08 |
|
|
08E7 |
|
3E |
MVI A,00 |
Обнуление триггера |
08E8 |
|
00 |
|
|
08E9 |
|
D3 |
OUT B2 |
|
08EA |
|
B2 |
|
|
08EB |
|
3E |
MVI A ,20 |
КО 2 |
08EC |
|
20 |
|
|
08ED |
|
D3 |
OUT 98 |
|
08EE |
|
98 |
|
|
08EF |
|
E1 |
POP H |
Извлечение информации из стека |
08F0 |
|
D1 |
POP D |
|
08F1 |
|
C1 |
POP B |
|
08F2 |
|
F1 |
POP PSW |
|
08F3 |
|
C9 |
RET |
Возврат |
08F4 |
|
00 |
|
|
08F5 |
|
37 |
|
П |
08F6 |
|
79 |
|
Е |
08F7 |
|
73 |
|
Р |
08F8 |
|
79 |
|
Е |
08F9 |
|
66 |
|
Ч |
08FA |
|
7C |
|
Ь |
08FB |
|
76 |
|
Н |
08FC |
|
79 |
|
Е |
08FD |
|
66 |
|
Ч |
08FE |
|
79 |
|
Е |
08FF |
|
37 |
|
П |
0900 |
|
00 |
|
|
0901 |
|
3F |
|
О |
0902 |
|
73 |
|
Р |
0903 |
|
7D |
|
Б |
0904 |
|
79 |
|
Е |
0905 |
|
73 |
|
Р |
0906 |
|
00 |
|
|
0907 |
|
00 |
|
|
0908 |
|
37 |
|
А |
0909 |
|
31 |
|
Г |
090A |
|
3F |
|
О |
090B |
|
76 |
|
Н |
090C |
|
|
|
|