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

13.  Продумайте, как работает программа №4, приведенная в табл. 5.6. Зачем нужно поле «метка»?

14.  Продумайте, как протестировать программу №4.

15.  Запишите программу №4 в память УМК и протестируйте ее различными вариантами чисел, записывая в черновик результаты тестирования.

Таблица 5.6

COMP - программа сравнения чисел в ячейках ОЗУ

Адрес HEX

Данные HEX

Метка

Команда

Комментарий

0800

3A 00 09

COMP:

LDA 0900

(A)¬((0900)) Чтение из ОЗУ первого числа

0803

47

MOV B,A

(B)¬(A) Сохранение первого числа в регистре В

0804

3A 01 09

LDA 0901

(A)¬((0901)) Чтение из ОЗУ второго числа

0807

B8

CMP B

(A)>(B)? Сравнение чисел

0808

D2 0C 08

JNC MET

Переход на МЕТ, если (A)>(B)

080B

78

MOV A,B

(A)¬(B) Сохранение большего числа

080C

32 30 09

MET:

STA 0930

((0930))¬(A) Запись в ОЗУ

080F

C7

RST0

Выход

16.  Измените программу №4 таким образом, чтобы она определяла меньшее из чисел (воспользуйтесь табл. 5.2). Протестируйте полученную программу.

17.  Продумайте, как работает программа №5, приведенная в табл. 5.7. Составьте блок-схему алгоритма этой программы и покажите ее преподавателю.

Таблица 5.7

SUM – программа сложения массива чисел в ячейках ОЗУ

Адрес HEX

Данные HEX

Метка

Команда

Комментарий

0800

21 00 09

SUM:

LXI H,0900

(HL)¬0900. В регистровой паре HL – адрес первого слагаемого

0803

06 05

MVI B,05

(B)¬05. В регистре В - количество слагаемых (количество циклов)

0805

CD 10 08

CALL ADD8

Вызов подпрограммы ADD8

0808

32 30 09

STA 0930

((0930))¬(A). Запись в ОЗУ мл. байта результата

080B

79

MOV A,C

(A)¬(C)

080C

32 31 09

STA 0931

((0931))¬(A). Запись в ОЗУ ст. байта результата

080F

C7

RST0

Выход

Подпрограмма ADD8:

0810

AF

ADD8:

XRA A

(A)¬00. В регистре А - мл. байт результата

0811

4F

MOV C,A

(C)¬00. В регистре С - ст. байт результата

0812

86

CNT:

ADD M

(A)¬ (A) +((HL)). Сложение с числом из массива

0813

D2 17 08

JNC TRM

Переход на TRM, если не было переноса в 9-й разряд

 0816

0C

INR C

(C) ¬(C)+1. Инкремент старшего байта результата

0817

23

TRM:

INX H

(HL¬(HL)+1. Переход с след. адресу массива

0818

05

DCR B

(B) ¬(B)-1. Декремент счетчика циклов

0819

С2 12 08

JNZ CNT

(B)=0? Цикл

081C

C9

RET

Возврат из подпрограммы

18.  Продумайте, как протестировать программу №5.

19.  Получите у преподавателя пять чисел в HEX коде (каждому студенту – свои числа) и без использования калькулятора вручную сложите их, получив результат в HEX коде.

20.  Запишите программу №5 в память УМК и протестируйте ее.

21.  Проверьте правильность расчётов по заданным числам с помощью программы №5.

22.  Получите у преподавателя индивидуальное задание по разработке своей программы.

Содержание отчёта

Отчёт должен содержать все исследуемые программы без столбцов «Адрес» и «Данные»; результаты тестирования программ; подробное описание всех расчётов, результаты проверки расчётов с помощью программ; описание программы, разработанной по заданию преподавателя.