Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
Роздрукувати лістинг правильно працюючої програми.
8 Відповісти на контрольні питання викладача.
Таблиця 4 - Перелік прапорців
Символ
| Позиція
| Ім’я і призначення
| P
| PSW.0
| Прапорець пріоритету. Встановлюється і скидається апаратно в кожному циклі команди і фіксує непарне/парне число одиничних біт в акумуляторі
| -
| PSW.1
| Не використовується
| OV
| PSW.2
| Прапорець переповнення. Встановлюється і скидається апаратно при виконанні арифметичних операцій
| RS0 - RS1
| PSW.3 - PSW.4
| Біти вибору використовуваного банку регістрів. Можуть бути змінені програмним шляхом
RS0
| RS1
| Банк
| Границі адресів ОЗП
|
|
|
| 00H - 07H
|
|
|
| 08H - 0FH
|
|
|
| 10H
17H
|
|
|
|
8H - 1FH
| | Продовження табл. 4
F0
| PSW.5
| Прапорець користувача. Може бути встановлений, скинутий або перевірений програмою користувача
| АС
| PSW.6
| Прапорець допоміжного перенесення. Встановлюється і скидається тільки апаратними засобами при виконанні команд додавання і віднімання і сигналізує про перенесення або позички в біті 3 акумулятора
| C
| PSW.7
| Прапорець перенесення. Встановлюється і скидається як апаратно, так і програмним шляхом
| Як початковий код використовувати програму, розроблену в лабораторній роботі 3.
Приклад програми для роботи зі стеком
Занести в акумулятор число і виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h.
$ NOMOD51
$ Include (D:\ Sum_GU_STUD\MPP\ BIN\ASM51\mod51)
ORG 0
mov A, # 01000100b
jb PSW.0, Chetnoe
mov P2, # 11h
jmp Stop
Chetnoe:
mov P2, # 00h
Stop:
jmp Stop
END
Таблиця 5 - Варіанти індивідуальних завдань до ЛР 4
Номер
вар
| Текст індивідуального завдання
| 1,11,
| Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW1. Після досягнення кількості натискань 5 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW2 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h
| 2,12,
| Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW3. Після досягнення кількості натискань 6 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW4 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1» вивести число 11h
| 3,13,
| Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW5. Після досягнення кількості натискань 7 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW6 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h
| 4,14,
| Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW7. Після досягнення кількості натискань 8 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW8 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h
| 5,15,
| Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW1. Після досягнення кількості натискань 9 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW2 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h
| Продовження табл. 5
6,16
| Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW3. Після досягнення кількості натискань 4 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW4 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h
| 7,17
| Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW5. Після досягнення кількості натискань 5 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW6 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h
| 8,18
| Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW7. Після досягнення кількості натискань 6 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW8 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h
| 9,19
| Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW1. Після досягнення кількості натискань 7 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW2 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h
| 10,20
| Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW3. Після досягнення кількості натискань 8 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW4 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h
|
Рисунок 12 - Схема до лабораторної роботи 4
|