Система команд микропроцессора КР580вм80а на базе микро-ЭВМ "Электроника 580". Технические характеристики микро-ЭВМ, страница 17

5.1. К начальному значению суммы прибавить содержимое очередной ячейки массива.

5.2. Результат поместить в регистр В.

5.3. Записать в регистровую пару HL адрес очередной ячейки массива.

6. Сравнить адрес текущей ячейки массива с адресом конечной ячейки массива (подпрограмма).

7. Если текущий адрес меньше конечного, то повторить вычисления с п.5.

8. Останов.

Подпрограмма сравнения содержимого регистровых пар (поскольку команда непосредственного сравнения содержимого регистровых пар отсутствует, то сравнение можно произвести посредством операции вычитания с последующим контролем флагов нуля или переноса):

9. Вычесть из содержимого младшего байта конечного адреса массива содержимое младшего байта текущего адреса массива.

10. Вычесть из содержимого старшего байта конечного адреса массива содержимое старшего байта текущего адреса массива с учетом бита переноса.

11. Возврат к п.7.

Текст программы и исходные данные желательно расположить в адресном пространстве ОЗУ в соответствии с таблицей 6.3;

Таблица 6.3

Адрес

Содержимое

8000

…

81FF

Текст программы

8200

Массив

…

8209

820А

Стек

…

821А

б) ввести исходный массив (с целью упрощения контроля результата (суммы) все элементы массива могут быть равны, например, 110) и выполнить программу в пошаговом режиме;

в) после выполнения каждого шага программы заносить в таблицу 6.4 содержимое всех используемых регистров, а также содержимое стека и флага переноса:

Таблица 6.4

№

шага

Регистры

SP

SP-1

Флаг

С

Комментарий

А

В

D

E

H

L

0

XX

XX

XX

XX

XX

XX

XX

XX

X

Исх. данные

1

2

г) прокомментировать содержимое стека и установку флага.

6.4. Содержание отчета

В отчете привести наименование и цель работы, тексты программ задач №1 и №2, записанные в мнемокодах и машинных кодах, заполненные таблицы 6.2 и 6.4 с подробными комментариями.

Лабораторная работа №7

Арифметическое умножение и деление

7.1. Цель работы

1. Изучить способы организации арифметического умножения и деления.

2. Получить практические навыки составления программ.

7.2. Краткие сведения из теории

7.2.1. Арифметическое умножение

Существует несколько алгоритмов умножения чисел. При первом алгоритме умножение можно заменить многократным сложением, например 14*3 = 14+14+14. Существенный недостаток этого способа - значительная длительность процесса вычисления.

При втором алгоритме умножение осуществляется в столбик. Такой алгоритм применим как для десятичных, так и для двоичных чисел. Применим данный алгоритм для умножения двоичных чисел, например:

0110 - множимое 610;

0011 - множитель 310;

0110 - первое частичное произведение;

0 110   - второе частичное произведение;

00 00     - третье частичное произведение;

000 0       - четвертое частичное произведение;

0001 0010 - произведение 1810.

После завершения умножения множимого на значение младшего разряда множителя получается первое частичное произведение. В результате умножения множимого на значение следующего по старшинству разряда множителя формируется второе частичное произведение. Подобная процедура повторяется с целью получения всех необходимых частичных произведений.