Найти частное максимального и минимального элементов массива - Assembler

Узнай цену своей работы

Формулировка задачи:

Дан массив состоящий из элементов 6,8,10,7,11,27,12,3,5,4. Найти частное максимального и минимального элементов массива. Результат вывести на экран в десятичной системе счисления. Напишите пожалуйста программу в одном сегменте. Заранее спасибо!!!

Решение задачи: «Найти частное максимального и минимального элементов массива»

textual
Листинг программы
.model small
.386
 
.stack 100h
 
.data
arr db 6,8,10,7,11,27,12,3,5,4
len equ $-arr
max db ?
min db ?
 
.code
start:
mov ax,@data
mov ds,ax
 
xor si,si
mov ah,arr[si]
inc si
mov cx,len
dec cx
find_max:
lodsb
 
cmp al,ah
jle skip1
 
xchg ah,al
 
skip1:
loop find_max
 
mov max,ah
 
xor si,si
mov ah,arr[si]
inc si
mov cx,len
dec cx
find_min:
lodsb
 
cmp al,ah
jge skip2
 
xchg ah,al
 
skip2:
loop find_min
 
mov min,ah
 
mov al,max
cbw
div min
 
mov ah,02h
mov dl,al
add dl,30h
int 21h
 
mov ah,4Ch
mov al,00h
int 21h
end start

Объяснение кода листинга программы

  1. Установка начального значения регистрам AX и DS
  2. Установка счётчика и начального адреса для поиска максимального элемента
  3. Проверка первого элемента массива на максимальное значение
  4. Если текущий элемент больше максимального, то обновление значения максимального элемента
  5. Переход к следующему элементу массива
  6. Повторение шагов 3-5 до окончания цикла
  7. Запись значения максимального элемента в соответствующую переменную
  8. Установка счётчика и начального адреса для поиска минимального элемента
  9. Проверка первого элемента массива на минимальное значение
  10. Если текущий элемент меньше минимального, то обновление значения минимального элемента
  11. Переход к следующему элементу массива
  12. Повторение шагов 8-11 до окончания цикла
  13. Запись значения минимального элемента в соответствующую переменную
  14. Вычисление частного максимального и минимального элементов массива
  15. Запись результата в регистр AX
  16. Установка начальных значений регистрам AX и DS
  17. Вывод результата на экран с помощью функции int 21h
  18. Завершение работы программы с помощью функции int 21h

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

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