Поиск максимального элемента массива - Assembler
Формулировка задачи:
2. В числовом однобайтовом массиве с 02АС по 02В2 найти адрес максимального элемента и поместить его в DX
Решение задачи: «Поиск максимального элемента массива»
textual
Листинг программы
code segment assume cs:code, ds:code org 100h start: mov si, 02ACh mov dx, si mov al, [si] @@Repeat: cmp al, [si] jbe @@Next mov al, [si] mov dx, si @@Next: add si, 1 cmp si, 02B2h jbe @@Repeat int 20h code ends end start
Объяснение кода листинга программы
Код сегмента на языке Assembler выполняет поиск максимального элемента в массиве. Список действий:
- Переменная si содержит начальный индекс массива, равный 02ACh.
- Переменная dx также содержит начальный индекс массива, равный si.
- Переменная al содержит значение элемента массива с индексом si.
- Начинается повторение:
- Переменная al сравнивается со значением элемента массива по индексу si. Если al больше, то значение элемента массива обновляется, а индекс dx равен si.
- Индекс si увеличивается на 1.
- Если индекс si меньше 02B2h (20), то повторяется предыдущий блок.
- Выполняется завершающий переход на 20h. Остальные переменные и команды не используются в данном коде.