зачет. зачетЛяйля. Решение org 800h смещаем программу на стандартный адрес начала lxi h, 052ch адрес 1го массива в hl
Скачать 30 Kb.
|
Имеется 2 массива данных. Адрес первого массива 052C, адрес второго массива 2617.Записать в ОЗУ сумму 2-х массивов. Адрес его 275C. В первом и втором массивах содержится по 25 чисел. Решение: ORG 800h; смещаем программу на стандартный адрес начала LXI H, 052ch; адрес 1-го массива - в HL PUSH H; заносим его стек MVI L, 24; заносим счетчик элементов в L (рег. пара - HL) (1) LXI B, 2617h; адрес 2-го массива - в BC LXI D, 275ch; адрес 3-го массива - результата - в DE M1: XTHL; достаем в HL адрес 1-го массива, а счетчик кладем в стек LDAX B; копирование в A ячейки 2-го массива (ее адрес в BC) ADD M; суммирование A с ячейкой 1-го массива (адрес в HL) STAX D; кладем получившуюся в A сумму в 3-й массив INX H; увеличиваем индексы всех трех массивов INX B INX D XTHL; достаем в HL счетчик, а адрес 1-го массива кладем в стек DCR L; уменьшаем счетчик на 1 JNZ 0Ch; если в L еще не 0 - возвращаемся на метку M1 (2) POP H; восстановим стек (необязательная, но желательная команда) HLT; останов программы ORG 0512h; заполняем 1-й массив (с учетом резервирования 26 байт (3)) DB 01 DB 02 DB 03 DB 04 DB 05 DB 06 DB 07 DB 08 DB 09 DB 0ah DB 0bh DB 0ch DB 0dh DB 0eh DB 0fh; 15 DB 10h DB 11h DB 12h DB 13h DB 14h DB 15h DB 16h DB 17h DB 18h; 25 ORG 20D3h; заполняем 2-й массив (с учетом резервирования 52Dh байт (3)) DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 DB 01 1.В счетчик кладем число 24 (25-1) в связи с особенностями организации цикла. При значении счетчика 25 цикл выполнится 26 раз. 2.Из-за несовершенства отладчика возврат на метку M1 производить нельзя. Такой возврат передаст управление на адрес 80Ch, в то время как программа, несмотря на директиву ORG 800h, располагается с 0-го адреса. 3.Резервирование памяти подразумевает вычитание из требуемого адреса размера предыдущей программы со всеми ранее сделанными ORG-смещениями. Обусловлено несовершенством отладчика. РЕЗУЛЬТАТ: В третьем массиве (275Ch) должны получиться числа от 2 до 19h |