<<
>>

КОПИРОВАНИЕ МАССИВОВ

5.3.1. ПЕРЕСЫЛКА ИНФОРМАЦИИ С КОНЦА МАССИВА

Необходимость перемещения информации, начиная со старших адресов, т. е. с конца массива, возникает в том случае, когда адрес начала массива-приемника принадлежит области конца массива-источника (рис.

5.3,а). Программа пересылки имеет следующий вид:

Возрастание адресов

Рис. 5.3. Схемы расположения массивов в памяти:

а — при пересылке с конца массива-источника; б — при пересылке с начала массива-

источника

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

массива-приемника, что осуществляется путем сложения адреса начала массива и его длины командой DAD. Полученные адреса используются как начальные значения для указателей записи и чтения. Пересылка выполняется побайтно, после каждой пересылки значение указателей декрементируется. Таким образом, первым будет переписан последний байт заполняемого массива, затем — предпоследний и т. д.

5.3.2. ПЕРЕСЫЛКА ИНФОРМАЦИИ С НАЧАЛА МАССИВА

Если адрес начала массива-источника принадлежит области памяти массива-приемника* пересылку массива необходимо начинать с младших адресов (рис. 5.3,6). Программа пересылки имеет вид:

Структура программы аналогична структуре программы КОПІ, но отсутствуют фрагменты, в которых вычисляются адреса последних байтов массива-источника и массива-приемника, так как перемещение начинается с младших адресов и начальными значениями указателей являются значения соответствующих входных параметров. После каждой пересылки значения указателей инкрементируются. Если области памяти, занимаемые

массивом-источником и массивом-приемником, не пересекаются, перемещение выполняется корректно как программой КОП1, так и программой КОП2. Предпочтительнее пользоваться программой КОП2, так как она короче и выполняется быстрее.

5.5.

<< | >>
Источник: Гуртовцев А. Л., Гудыменко С. В.. Программы для микропроцессоров: Справ, пособие.— Мн.: Выш. шк.,1989.— 352 с.: ил.. 1989

Еще по теме КОПИРОВАНИЕ МАССИВОВ: