Программа сложения ряда чисел
Адрес | Машинный код | Метка | Мнемокод | Комментарий |
3A | LDA | загрузка длины ряда чисел в АКМ | ||
NN | из ячейки памяти с адресом | |||
NN | NNNN | |||
MOV B,A | загрузка длины ряда чисел в регистр-счетчик | |||
SUB А | Обнуление аккумулятора | |||
LXI H | загрузка адресного указателя | |||
DD | DDDD в регистровую пару HL | |||
DD | ||||
M2 | ADD M | сложение элемента массива с АКМ | ||
DCR B | уменьшение содержимого регистра-счетчика на единицу | |||
810A | CA | JZ, M1 | сложение элементов массива | |
810B | закончено? | |||
810C | ||||
810D | INX H | переход к следующему адресу | ||
810E | C3 | JMP, M2 | организация цикла | |
810F | ||||
Ml | NOP | окончание программы |
Перед выполнением программы исходный ряд чисел заносится с помощью командных клавиш в область памяти, начиная с адреса DDDD (см. Приложение 2), а его длина - в ячейку памяти с адресом NNNN.
В большинстве случаев точность вычислений, обеспечиваемая одной ячейкой памяти, недостаточна. Поэтому рассмотрим арифметику для чисел, занимающих несколько ячеек. Задача состоит в том, чтобы сложить два числа длиной более 8 бит каждое. Исходные числа располагаются в области памяти таким образом, что сначала идут младшие разряды, а затем более старшие разряды. Полученную сумму необходимо поместить в те ячейки памяти, где хранилось первое число.
В программе суммирования двух длинных чисел для МП К580ИК80 использованы следующие исходные данные и обозначения:
N - длина чисел в байтах
В - регистр-счетчик, указатель длины чисел
DE - регистровая пара, адресный указатель первого слагаемого
NNNN - адрес ячейки памяти, где хранится младший байт первого числа
HL - регистровая пара, адресный указатель второго слагаемого
DDDD - адрес ячейки памяти, где хранится младший байт второго числа
8300 – адрес начала программы
Таблица 2
Дата добавления: 2015-08-01; просмотров: 780;