Обработка массива: поиск минимума, сортировка - Assembler

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

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

Дано такое условие: Если минимальный элемент вектора является последним элементом вектора, то отсортировать элементы вектора по убыванию. Как я понимаю по условию задачи я должен найти минимальный элемент и его индекс, потом выяснить этот индекс является последним или не последним, а если последний то отсортировать по убыванию. Как это реализовать у меня это "хромает". Знаю только как минимум находить в этом коде (ниже).
Листинг программы
  1. Dseg segment para public 'data'
  2. mas db -1,3,5,2,-7
  3. n dw 5
  4. min db ?
  5. Dseg ends
  6. Sseg segment para stack 'stack'
  7. dw 30 dup(0)
  8. Sseg ends
  9. Cseg segment para public 'code'
  10. osn proc near
  11. assume c s:cseg,ds:dseg,ss:sseg
  12. mov a x,dseg
  13. mov d s,ax
  14. mov cx,n ;cx=n
  15. mov al, mas ;al=mas[0]
  16. mov di,0 ;di=0
  17. start: cmp al, mas[di]
  18. jle met
  19. mov al, mas[di]
  20. met: inc di
  21. loop start
  22. mov min, al
  23. mov ax, 4c00h
  24. int 21h
  25. osn endp
  26. cseg ends
  27. end osn
и как поменять местами первый и минимальный элементы вектора. (с последним не знаю)
Листинг программы
  1. Dseg segment para public 'data'
  2. mas db -1,3,5,2,-7
  3. n dw 5
  4. min db ?
  5. imin dw ?
  6. Dseg ends
  7. Sseg segment para stack 'stack'
  8. dw 30 dup(0)
  9. Sseg ends
  10. Cseg segment para public 'code'
  11. osn proc near
  12. assume c s:cseg,ds:dseg,ss:sseg
  13. mov a x,dseg
  14. 35
  15. mov d s,ax
  16. mov cx,n ;cx=n
  17. mov al, mas ;al=mas[0]
  18. mov si,0
  19. mov di,0 ;di=0
  20. start: cmp al, mas[di]
  21. jle met
  22. mov al, mas[di]
  23. mov si,di
  24. met: inc di
  25. loop s tart
  26. mov min, al
  27. mov imin,si
  28. mov di, 0
  29. mov bl, mas[di]
  30. mov mas[di],al
  31. mov mas[si],bl
  32. mov ax, 4c00h
  33. int 21h
  34. osn endp
  35. cseg ends
  36. end osn

Решение задачи: «Обработка массива: поиск минимума, сортировка»

textual
Листинг программы
  1. mov ax, imin
  2. cmp ax, n
  3. je Sort

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

  1. Значение переменной imin загружается в регистр ax.
  2. Значение переменной n сравнивается с содержимым регистра ax.
  3. Если оба значения равны, выполняется переход к метке Sort для выполнения сортировки массива.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

15   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы