| Адрес | Машинный код | Мнемокод | Комментарий |
| 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 соответственно.






