Подсчитать количество максимальных элементов в массиве (Assembler вставки)

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

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

Добрый день. Помогите пожалуйста реализовать данное задание. Программа находит максимальный элемент. Нужно дописать код, чтобы выводило максимальный элемент и количество повторов(например так, Max - 24 Count - 3 ). Буду очень благодарна!

Решение задачи: «Подсчитать количество максимальных элементов в массиве (Assembler вставки)»

textual
Листинг программы
  lea   esi,a
  mov   ebx,[esi]
  mov   ecx,10-1
  add   esi,4
  mov   edx,1
M1:
  lodsd
  cmp   eax,ebx
  je    M2
  jg    M3
M2:
  inc   edx
  loop  M1
  jmp   M4
M3:
  mov   ebx,eax
  mov   edx,1
  loop  M1
M4:
  mov   count,edx

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

В данном коде, написанном на языке Assembler, поставлена задача подсчитать количество максимальных элементов в массиве.

  1. Сначала мы помещаем указатель на первый элемент массива в ESI.
  2. Затем мы помещаем значение этого элемента в EBX.
  3. Далее мы готовим счётчик для цикла, который будет выполняться 10 раз (10-1=9).
  4. Увеличиваем ESI на 4, чтобы перейти к следующему элементу массива.
  5. Делаем EDI равным 1.
  6. Затем мы входим в цикл M1.
  7. Внутри цикла мы забираем очередной элемент массива с помощью LODSD (Load String Doubleword).
  8. Сравниваем его со значением в EBX с помощью CMP.
  9. Если текущий элемент больше, то мы переходим к M3, иначе продолжаем с M2.
  10. В M2 мы увеличиваем EDI на 1 и продолжаем цикл.
  11. Если текущий элемент меньше или равен, то мы переходим к M4.
  12. В M4 мы сохраняем значение EDI (которая равна количеству найденных максимальных элементов) в EDX.
  13. Затем мы выходим из цикла и переходим к M4.
  14. В M4 мы перемещаем значение EDX в переменную count.

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


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

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

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