Найти минимум в массиве - 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 выполняется поиск минимума в массиве:

  1. Первым делом инициализируются сегменты стека и данных, а также переменные len и mas.
  2. Затем происходит основная часть работы. Переменная si используется в качестве индекса для обхода массива. При каждой итерации в переменную al записывается очередной элемент массива, после чего он сравнивается со значением переменной res. Если элемент меньше, то он записывается в res, после чего индекс увеличивается и происходит следующая итерация.
  3. Если все элементы проверены, то в конце программы выводится сообщение об успешном выполнении.

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы