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