В заданной конечной последовательности целых чисел найти количество элементов кратных 7 (MASM32) - Assembler
Формулировка задачи:
В заданной конечной последовательности целых чисел найти количество элементов кратных 7 (MASM32)
Решение задачи: «В заданной конечной последовательности целых чисел найти количество элементов кратных 7 (MASM32)»
textual
Листинг программы
lea esi, [Array] mov ecx, [N] mov ebx, 0 mov edi, 7 @@for: lodsd cdq idiv edi or edx, edx jnz @@next inc ebx @@next: loop @@for mov [Result], ebx
Объяснение кода листинга программы
- lea esi, [Array] — в этой строке кода происходит загрузка адреса массива в регистр ESI.
- mov ecx, [N] — в этой строке кода происходит загрузка значения переменной N в регистр ECX.
- mov ebx, 0 — в этой строке кода происходит установка начального значения в регистр EBX, который будет использоваться как счётчик.
- mov edi, 7 — в этой строке кода устанавливается значение 7 в регистр EDI, которое будет использоваться как делитель.
- @@for: — это метка цикла.
- lodsd — в этой строке кода происходит загрузка элемента массива в регистр ESI.
- cdq — в этой строке кода происходит преобразование значения в регистре ESI из signed в unsigned.
- idiv edi — в этой строке кода происходит деление значения в регистре ESI на значение в регистре ED.
- or edx, edx — в этой строке кода происходит проверка на остаток от деления, если остаток не равен нулю, то результат деления не делится на 7 без остатка.
- jnz @@next — если предыдущая операция дала остаток от деления не равный нулю, то происходит переход к следующей итерации цикла.
- inc ebx — в этой строке кода происходит увеличение значения в регистре EBX на единицу, что является счётчиком количества найденных элементов.
- @@next: — это метка перехода к следующей итерации цикла.
- loop @@for — это команда перехода к началу цикла.
- mov [Result], ebx — в этой строке кода результат подсчёта количества элементов, кратных 7, записывается в переменную Result.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д