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.
После завершения умножения множимого на значение младшего разряда множителя получается первое частичное произведение. В результате умножения множимого на значение следующего по старшинству разряда множителя формируется второе частичное произведение. Подобная процедура повторяется с целью получения всех необходимых частичных произведений.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.