Подсчитать количество максимальных элементов в массиве (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, поставлена задача подсчитать количество максимальных элементов в массиве.
- Сначала мы помещаем указатель на первый элемент массива в ESI.
- Затем мы помещаем значение этого элемента в EBX.
- Далее мы готовим счётчик для цикла, который будет выполняться 10 раз (10-1=9).
- Увеличиваем ESI на 4, чтобы перейти к следующему элементу массива.
- Делаем EDI равным 1.
- Затем мы входим в цикл M1.
- Внутри цикла мы забираем очередной элемент массива с помощью LODSD (Load String Doubleword).
- Сравниваем его со значением в EBX с помощью CMP.
- Если текущий элемент больше, то мы переходим к M3, иначе продолжаем с M2.
- В M2 мы увеличиваем EDI на 1 и продолжаем цикл.
- Если текущий элемент меньше или равен, то мы переходим к M4.
- В M4 мы сохраняем значение EDI (которая равна количеству найденных максимальных элементов) в EDX.
- Затем мы выходим из цикла и переходим к M4.
- В M4 мы перемещаем значение EDX в переменную count.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д