В заданной конечной последовательности целых чисел найти количество элементов кратных 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

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

  1. lea esi, [Array] — в этой строке кода происходит загрузка адреса массива в регистр ESI.
  2. mov ecx, [N] — в этой строке кода происходит загрузка значения переменной N в регистр ECX.
  3. mov ebx, 0 — в этой строке кода происходит установка начального значения в регистр EBX, который будет использоваться как счётчик.
  4. mov edi, 7 — в этой строке кода устанавливается значение 7 в регистр EDI, которое будет использоваться как делитель.
  5. @@for: — это метка цикла.
  6. lodsd — в этой строке кода происходит загрузка элемента массива в регистр ESI.
  7. cdq — в этой строке кода происходит преобразование значения в регистре ESI из signed в unsigned.
  8. idiv edi — в этой строке кода происходит деление значения в регистре ESI на значение в регистре ED.
  9. or edx, edx — в этой строке кода происходит проверка на остаток от деления, если остаток не равен нулю, то результат деления не делится на 7 без остатка.
  10. jnz @@next — если предыдущая операция дала остаток от деления не равный нулю, то происходит переход к следующей итерации цикла.
  11. inc ebx — в этой строке кода происходит увеличение значения в регистре EBX на единицу, что является счётчиком количества найденных элементов.
  12. @@next: — это метка перехода к следующей итерации цикла.
  13. loop @@for — это команда перехода к началу цикла.
  14. mov [Result], ebx — в этой строке кода результат подсчёта количества элементов, кратных 7, записывается в переменную Result.

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


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

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

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