Найти минимум в массиве - Assembler
Формулировка задачи:
Найти мин в одинарном массиве. Завтра лабу сдать надо срочно. Прошу помощи.
Сделал шапку и конец, а как должен выглядеть сам цикл?
.stack 100h .data len equ 10 mas db 56,34,45,41,59,63,7,4,2,1 res db 10 dup(?) .code start: mov ax,@data mov ds, ax mov cx, len xor si, si jcxz exit cycl: exit: mov ax, 4c00h int 21h end start
Решение задачи: «Найти минимум в массиве»
textual
Листинг программы
model small .stack 100h .data len equ 10 mas db 56,34,45,41,59,63,7,4,2,1 res db 0 .code start: mov ax,@data mov ds, ax mov cx,9 xor si, si mov al, mas[si] mov res, al inc si cycl: cmp al, mas[si] ja m1 jmp m2 m1: mov al, mas[si] mov res, al m2: inc si loop cycl exit: mov ax, 4c00h int 21h
Объяснение кода листинга программы
В этом коде на языке Assembler выполняется поиск минимума в массиве:
- Первым делом инициализируются сегменты стека и данных, а также переменные len и mas.
- Затем происходит основная часть работы. Переменная si используется в качестве индекса для обхода массива. При каждой итерации в переменную al записывается очередной элемент массива, после чего он сравнивается со значением переменной res. Если элемент меньше, то он записывается в res, после чего индекс увеличивается и происходит следующая итерация.
- Если все элементы проверены, то в конце программы выводится сообщение об успешном выполнении.