Задача на Assembler в среде RadAsm! Дан массив a(n) типа WORD. Найти минимальный элемент.
Формулировка задачи:
Задача фигня , но с чего начать...не могу понять . Помогите или скажите с чего начать ... Дан массив a(n) типа WORD. Найти минимальный элемент .
Решение задачи: «Задача на Assembler в среде RadAsm! Дан массив a(n) типа WORD. Найти минимальный элемент.»
textual
Листинг программы
mov si, offset array ; mov cx, array_len ; mov bx,-2 ; bx = 0FFFEh (минимальное на данный момент) @1: lodsw ; cmp bx, ax ; сравнение MIN с элементом массива jb okey ; OK - если ВХ меньше xchg ax, bx ; иначе: меняем их местами okey: loop @1 ; мотаем СХ-раз..
Объяснение кода листинга программы
- Входные данные:
- Массив
a(n)
типаWORD
. array_len
- длина массива.bx
- переменная, в которой будет храниться минимальный элемент на данный момент.cx
- счётчик итераций цикла.si
- смещение массива в памяти.
- Массив
- Описание работы алгоритма:
- Линейный поиск минимального элемента в массиве.
- Цикл выполняется
array_len
раз. - На каждой итерации:
- Сохранение текущего минимального элемента в регистре bx.
- Загрузка очередного элемента массива в регистр ax.
- Сравнение текущего элемента с минимальным.
- Если текущий элемент меньше, то меняем его и минимального местами.
- Если текущий элемент равен минимальному, то переходим к следующей итерации.
- После цикла возвращаемся в начало и повторяем цикл до тех пор, пока не найдём минимальный элемент.
- Выходные данные:
- Минимальный элемент массива
a(n)
.
- Минимальный элемент массива
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д