Области памяти в другую

Адрес Машинный код Мнемокод Комментарий
  B90200 mov cx,0002 Загрузка счётчика
  BE0D01 mov si,010D Загрузка адресного указателя исходного массива
  BF1101 mov di,0111 Загрузка адресного указателя результирующего массива
  F2A5 repnz movsw Пересылка данных
010B CD20 int 20 Окончание программы
010D FF   Данные
010E FF   Данные
010F FF   Данные
  FFAAAAAA   Данные
  AA   Данные

Исходные данные см. Приложение 4.

В ряде случаев возникает необходимость выбрать из массива информации данные, представляющие собой ряд максимальных, либо минимальных величин. Предположим, что необходимо написать программу для решения следующей задачи. Дан массив А1, состоящий из N однобайтовых чисел. Необходимо переписать из массива А1 в массив В1 все числа в диапазоне от Н1 до Н2.

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

000A - количество элементов исходного массива;

cx - счетчик, указатель длины исходного массива;

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

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

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

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

0002 - нижний предел диапазона выборки;

0006 - верхний предел диапазона выборки;

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

Таблица 5.

Выборка из массива данных чисел заданного интервала

Адрес Машинный код Мнемокод Мет­ка Комментарий
  B90A00 mov cx,000A   Загрузка счётчика
  BE1901 mov si,0119   Загрузка адресного ук-ля исходного массива
  BF2C01 mov di,012C   Загрузка адресного ук-ля результирующего массива
  AD lodsw   Выборка числа из массива А1
010A 3D0200 cmp ax,0002   Сравнение с нижним пределом
010D   jb 0115   Переход на метку М1, если число < 0002
010F 3D0600 cmp ax,0006   Сравнение с верхним пределом
    ja 0115   Переход на метку М2, если число > 0006
  AB stosw   Запись числа, попавшего в интервал
  E2F2 loop 0109   Организация цикла
  CD20 int 20   Окончание программы
        Данные
011B       Данные
011D       Данные
011F       Данные
        Данные
        Данные
        Данные
        Данные
012A       Данные
012C       Поле для записи числа
012E       Поле для записи числа
        Поле для записи числа
        Поле для записи числа
        Поле для записи числа
        Поле для записи числа
        Поле для записи числа
013A       Поле для записи числа
013C       Поле для записи числа
013E       Поле для записи числа

Исходные данные см. Приложение 5.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

По заданию преподавателя подготовить и выполнить

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

Исходные данные необходимо взять из Приложений 4 и 5 соответственно.




double arrow
Сейчас читают про: