Цифровые устройства и микропроцессорные системы. Задачи и упражнения: Учебное пособие (Представление чисел и арифметические операции в цифровых устройствах. Микропроцессорные устройства и системы на базе МП КР580ВМ80), страница 100

4) модификация команд:

Рис. Р8.9. К решению задачи 8.35:

а) размещение массива в ЗУ; б) схема формирования и обработки массива

(указатель)¬(указатель) + 1;

(счетчик)¬(счетчик) – 1;

5) проверка условия окончания цикла ввода ёлементов массива.

Р8.36. В качестве указателя адресов элементов массива используем регистровую пару (НL), а в качестве счетчика РОН С. Пусть длина массива хранится в ячейке ЗУ с адресом LЕNGТН = 8060Н.

Фрагмент программы:

LDА    8060Н                                     ;(А) = 57Н

МОV   С, А                                         ;(Счетчик) = 57Н

LХІ      Н,025DН                                 ;3агрузка указателя (НL) = 025 DН

SАVЕ:             ІN        05Н                                         ;Ввод элемента

МОV   М,А                                         ;Пересылка элемента массива в ячейку

;ЗУ, адрес которой в указателе

ІNХ     Н                                             ;(НL)¬(НL) + 1

DСR    С                                             ;(С)¬(С) – 1

INZ      SАVЕ                                      ;Проверка условия (С) ¹ 0 и продолжение

;формирования массива

Р8.37. Выбираем в качестве указателя адреса регистровую пару (НL), а в качестве счетчика — РОН С.

Фрагмент программы:

МVІ    С,25Н                          ;3агрузка счетчика

LХІ      Н,025DН                     ;Инициализация указателя адреса

SАVЕ: ІN        05Н                                         ;Ввод младшего байта элемента

МОV   М,А                             ;Пересылка младшего байта элемента в ячейку

;памяти

INХ     Н                                 ;Указатель на старший байт

IN        05H                             ;Ввод старшего байта в А

МОV   М,А                             ;3агрузка старшего байта в ячейку памяти

INХ     Н                                 ;Модификация указателя

DСR    С                                 ;Счет

INZ      SАVE                          ;Проверка окончания цикла и формирования

;массива

Р8.38. Алгоритм решения задачи может быть таким: в качестве максимального принимгется начальный элемент, т. е. элемент с индексом IND = 0, размещенный в ячейке с базовым адресом 025DН; затем с этим элементом сравнивается следующий элемент с индексом IND=1, и если он больше, то принимается за максимум; далее каждый последующий элемент массива сравнивается с ранее зафиксированным максимумом, и если он его превышает, то принимается за новый максимум и фиксируется в регистре максимума. Согласно этому алгоритму составляем программу. Выбираем  в качестве указателя адреса регистровую пару (НL), счетчика—-регистр С и регистра максимума— регистр А.

Программа:

LХІ      Н,025DН                                 ;Инициализация указателя

LDА    8060Н                                     ;Инициализация счетчика в

МОV   С,А                                          ;РОН С

NМХ:  МОV   А,М                                         ;3агрузка максимума регистр А

TIN:     ОСК    С                                 ;Счет в (C)

JZ        FDD                                        ;Проверка окончания цикла: если (С) = 0, то

;максимум в (А)

INХ Н                                                 ;Модификация указателя: (НL)¬(НL) + 1

СМР    М                                            ;Сравнение нового элемента масгиса с

;соцержимым (А): если (A)<([М]), то флаг CY = 1

JС        NМХ                                       ;Если есть перенос из 8-го разряда, т. е. Если

;очередной элемент больше содержимого (А),

;то переход по метке. NМХ в (А) записывается

;новый максимум

JNZ     TIN                                          ;Очередной элемент массива меньше

;содержимого (А), безусловный переход к метке

;ТІN

FDD:   XXX                                                    ;Максимум определен, размещен в (А)

Рис. Р8.10. Алгоритм формирования массива.

Р8.39. Алгоритм решения задачи приведен на рис. Р8.І0 Для указателей адресов элементов массивов используем пары регистров: массив Х → регистровая пара (ВС), массив Y®регистровая пара (НL), массив Z → регистровая пара (DЕ).