Регистр флагов содержит отдельные биты (флаги), значения которых (0 или 1) сообщают о той или иной ситуации. Например, флаг Z (Zero - ноль) и флаг CY (Carry - перенос). Флаг Z=0, если результат предыдущей арифметической операции или операции сравнения был не равен нулю. В противном случае Z=1. Флаг CY=0, если результат предыдущей арифметической операции вычитания или операции сравнения был больше нуля. Если результат меньше нуля, то CY=1. Флаг CY – это флаг переноса. Флаг CY=1, если разрядность результата сложения чисел превышает 8 бит.
Флаги позволяют осуществлять операции ветвления и циклы в программе с помощью команд переходов. Например, команда JNC 090Ah означает: перейти на адрес 090Аh, если результат предыдущей команды был больше нуля.
Описание лабораторной установки
Лабораторная установка представляет собой учебный микропроцессорный комплект – УМК. Это устройство предназначено для изучения процесса программирования микропроцессора. УМК имеет дисплей, первые четыре индикатора которого отображают адрес в шестнадцатеричном коде, а оставшиеся два индикатора – данные по выбранному адресу также в шестнадцатеричном коде.
Для выполнения лабораторной работы потребуются следующие операции на УМК:
1. Сброс – нажать «СБ»;
2. Переход по адресу: нажать «П», ввести нужный адрес, нажать «ВП»;
3. Переход к следующему адресу: нажать «|_|»;
4. Запуск программы: нажать «СТ», ввести начальный адрес программы, нажать «ВП».
Порядок выполнения работы
1. Продумайте, как работает программа №1, приведенная в табл. 5.3.
2. Продумайте, как протестировать программу №1 с помощью простейших чисел.
3. Получите у преподавателя число в HEX коде (каждому студенту – свое число) и без использования калькулятора вручную проинвертируйте его, получив результат в HEX коде.
Таблица 5.3
Программа инверсии числа в ОЗУ
Адрес HEX |
Данные HEX |
Команда |
Комментарий |
0800 |
3A 00 09 |
LDA 0900 |
(A)¬((0900)) Чтение из ОЗУ |
0803 |
2F |
CMA |
(A)¬() Инверсия |
0804 |
32 01 09 |
STA 0901 |
((0901))¬(A) Запись в ОЗУ |
0807 |
C7 |
RST0 |
Выход |
4. Запишите программу №1 в память УМК.
5. Протестируйте программу №1.
6. Проверьте правильность расчётов по заданному числу с помощью программы №1.
Таблица 5.4
Программа инверсии числа в ОЗУ
с использованием косвенной адресации
Адрес HEX |
Данные HEX |
Команда |
Комментарий |
0800 |
21 00 09 |
LXI H,0900 |
(HL)¬0900 Запись регистровой пары адресом данных |
0803 |
7E |
MOV A,M |
(A)¬((HL)) Чтение данных из ОЗУ при косвенной адресации |
0804 |
2F |
CMA |
(A)¬() Инверсия |
0805 |
23 |
INX H |
(HL)¬(HL)+1 Переход к следующему адресу |
0806 |
77 |
MOV M,A |
((HL))¬(A) Запись данных в ОЗУ при косвенной адресации |
0807 |
C7 |
RST0 |
Выход |
7. Повторите те же действия с программой №2, приведенной в табл. 5.4.
8. Продумайте, как работает программа №3, приведенная в табл. 5.5.
9. Продумайте, как протестировать программу №3 с помощью простейших чисел.
10. Получите у преподавателя два числа в HEX коде (каждому студенту – свои числа) и без использования калькулятора вручную сложите их, получив результат в HEX коде.
Таблица 5.5
Программа увеличения числа в ячейке ОЗУ
Адрес HEX |
Данные HEX |
Команда |
Комментарий |
0800 |
3A 00 09 |
LDA 0900 |
(A)¬((0900)) Чтение из ОЗУ |
0803 |
C6 05 |
ADI 05 |
(A)¬(A)+05 Суммирование |
0805 |
32 01 09 |
STA 0901 |
((0901))¬(A) Запись в ОЗУ |
0808 |
C7 |
RST0 |
Выход |
11. Запишите программу №3 в память УМК и протестируйте ее.
12. Проверьте правильность расчётов по заданным числам с помощью программы №3.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.