Изучение архитектуры и функционирования учебно-отладочного устройства «Электроника 580», страница 2

При выполнении программы в пошаговом режиме были отслежены изменения содержимого программно-доступных регистров A, H, L и ячейки памяти 8600h

В качестве тестового значения по адресу 8500h было помещено число 5Ah. Результатом выполнения программы стало число A5h, расположенное по адресу 8600h.

3.  Разработка и исследование программы увеличения на 5 числа, записанного по адресу 8600h, и записи результата по адресу 8601h.

Листинг разработанной программы представлен ниже:

Адрес

Код

Мнемокод

Примечание

8400h

8401h

8402h

8403h

8404h

8405h

8406h

8407h

8408h

3Ah

00h

86h

C6h

05h

32h

01h

86h

E7h

LDA

00h

86h

ADI

05h

STA

01h

86h

RST 4

Запись в аккумулятор

числа, расположенного

по адресу 8600h

Прибавить к содержимому аккумулятора число 05h

Запись числа из аккумулятора в ячейку

с адресом 8601h

Конец и вызов монитора.

При выполнении программы в пошаговом режиме были отслежены изменения содержимого программно-доступного регистра A и ячейки памяти 8601h

В качестве тестового значения по адресу 8600h было помещено сначала число 05h, а затем AEh. Результатом выполнения программы стало: для 05h число 0Ah, для AEh число B3h расположенное по адресу 8601h.

4.  Разработка и исследование программы сложения двух чисел, записанных по адресам 8600h и 86A0h и записи результата по адресу 8601h.

Листинг разработанной программы представлен ниже:

Адрес

Код

Мнемокод

Примечание

8400h

8401h

8402h

8403h

8404h

8405h

8406h

8407h

8408h

8409h

840Ah

3Ah

00h

86h

21h

A0h

86h

86h

32h

01h

86h

E7h

LDA

00h

86h

LXI

A0h

86h

ADD M

STA

01h

86h

RST 4

Запись в аккумулятор

числа, расположенного

по адресу 8600h

Запись в регистровую

пару HL

число 86A0h

(A)+((HL))=>A

Запись числа из аккумулятора в ячейку

с адресом 8601h

Конец и вызов монитора.

При выполнении программы в пошаговом режиме были отслежены изменения содержимого программно-доступных регистров A, H, L и ячейки памяти 8601h.

В качестве первого тестового значения по адресу 8600h было помещено число 08h, а по адресу 86A0h - число C0h. Результатом выполнения программы стало число C8h, расположенное по адресу 8601h. В качестве второго тестового значения по адресу 8600h было помещено число 2Eh, а по адресу 86A0h - число A5h. Результатом выполнения программы стало число D3h, расположенное по адресу 8601h.

В случае, если результат сложения превышает значение FFh, устанавливается флаг переноса С на панели УОУ.

5.  Разработка и исследование программы сравнения чисел в адресах 8600h и 8601h и записи большего из них в ячейку 8602h.

Листинг разработанной программы представлен ниже:

Адрес

Код

Мнемокод

Примечание

8400h

8401h

8402h

8403h

8404h

8405h

8406h

8407h

8408h

8409h

840Ah

840Bh

840Ch

840Dh

840Eh

3Ah

00h

86h

21h

01h

86h

BEh

F2h

0Bh

84h

7Eh

32h

02h

86h

E7h

LDA

00h

86h

LXI

01h

86h

CMP M

JP

0Bh

84h

MOV A,M

STA

02h

86h

RST 4

Запись в аккумулятор

числа, расположенного

по адресу 8600h

Запись в регистровую

пару HL

число 8601h

Сравнение A и [HL]

Переход по адресу

840Bh, если

A>[HL]

Получить число из [HL] в A

Запись числа из аккумулятора в ячейку

с адресом 8602h

Конец и вызов монитора.

При выполнении программы в пошаговом режиме были отслежены изменения содержимого программно-доступных регистров A, H, L и ячейки памяти 8602h.

В качестве первого тестового значения по адресу 8600h было помещено число 5Ah, а по адресу 8601h - число A5h. Результатом выполнения программы стало число A5h, расположенное по адресу 8602h. В качестве второго тестового значения по адресу 8600h было помещено число 02h, а по адресу 8601h - число 01h. Результатом выполнения программы стало число 02h, расположенное по адресу 8602h.


6.  Детальное описание обработки процессом пары команд: LDA 8600h / ADI 05h.

Команда LDA 8600h осуществляет пересылку 1-ого байта информации из ячейки памяти с адресом 8600h в регистр-аккумулятор А. Длина команды: 3 байта. Количество занимаемых машинных циклов: 4 цикла. Количество занимаемых машинных тактов: 13 тактов. Воздействие на флаги: не воздействует.

Выполнение команды по циклам:

1.  Извлечение кода команды - цикл M1 (4 такта);

2.  Увеличение программного счетчика на 1 и чтение из памяти младшего байта адреса 00h (3 такта);

3.  Увеличение программного счетчика на 1 и чтение из памяти старшего байта адреса 86h  (3 такта);

4.  Чтение байта данных из памяти с адресом 8600h (3 такта.).

Команда ADI 05h осуществляет сложение содержимого регистра-аккумулятора А с непосредственным операндом 05h. Длина команды: 2 байта. Количество занимаемых машинных циклов: 2 цикла. Количество занимаемых машинных тактов: 7 тактов. Воздействие на флаги: воздействует на флаги S, Z, AC, P, CY.

Выполнение команды по циклам:

1.  Извлечение кода команды - цикл M1 (4 такта);

2.  Увеличение программного счетчика на 1 и чтение из памяти непосредственного операнда 05h (3 такта);

Вывод.

В ходе проведения лабораторной работы было рассмотрено выполнение отдельных команд и простых программ с применением различных методов адресации. Разработаны программы:

- увеличения числа, записанного по адресу 8600h и записи результата по адресу 8601h.

- сложения двух чисел, записанных по адресам 8600h и 86A0h и записи результата по адресу

   8601h.

- сравнения чисел в адресах 8600h и 8601h и записи большего из них в ячейку 8602h.

Во время отладки были выявлены и устранены все ошибки, встретившиеся во время выполнения. При выполнении программ в пошаговом режиме были отслежены изменения содержимого программно-доступных регистров и ячеек памяти.

А также детально описана обработка процессом пары команд: LDA 8600h / ADI 05h.