СОДЕРЖАНИЕ ЛАБОРАТОРНОЙ РАБОТЫ

При программировании часто возникает необходимость в пересылке массива данных из одной области памяти в другую. Такая операция может понадобиться при инициализации элементов массива, при пересылке или формировании строки данных, выводимой на экран дисплея.

Рассмотрим следующую задачу. Массив чисел расположен в области памяти, начиная с адреса NNNN, и состоит из N элементов. Необходимо переслать массив в другую область памяти, начиная с адреса DDDD. В программе для МП К580ИК80А в качестве адресного регистра используется регистровая пара HL. В качестве адресных регистров можно также использовать регистры В и С (регистровая пара ВС), регистры D и Е (регистровая пара DE), но только для выполнения операций перемещения данных в аккумулятор и обратно (с помощью команд LDAX и STAX). Эти адресные регистры нельзя использовать в командах, выполняющих арифметические и логические операции, а также операции пересылки данных в регистры общего назначения или из регистров общего назначения. Необходимо учитывать, что при каждом проходе программа должна изменять содержимое обоих адресных регистров. Один и тот же набор регистров должен совместно использоваться в качестве счетчиков указателя адреса и рабочих ячеек.

В программе пересылки массива из одной области памяти в другую использованы следующие исходные данные и обозначения:

N - количество элементов массива

D - регистр-счетчик, указатель длины массива

HL - адресный указатель исходного массива

NNNN - адрес ячейки памяти, где хранится первое число

исходного массива

ВС - адресный указатель результирующего массива

DDDD - адрес ячейки памяти, с которой начинается результирующий массив

8500 - адрес начала программы


Таблица 1