Лабораторный практикум к лабораторным работам по курсу «Автоматизация электрических сетей», страница 13

Регистр флагов содержит отдельные биты (флаги), значения которых (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.