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