В заданной конечной последовательности целых чисел найти сумму элементов кратных 7 - Assembler
Формулировка задачи:
В заданной конечной последовательности целых чисел найти сумму элементов кратных 7. Я ломаю голову, это же по сути массив я его создал
А потом задумался, как мне проверять все элементы на кратность 7, я просто не знаю помогите, это надо проверять по сути каждый элемент массива, а как это сделать в ассемблере?Все делается на ASM32
Решение задачи: «В заданной конечной последовательности целых чисел найти сумму элементов кратных 7»
textual
Листинг программы
mov ebx,7 mov ecx,<длина массива> lea esi,Result cld M:lodsq mov edi,eax cdq div ebx test edx,edx jnz NoZ add Result,edi NoZ:loop M
Объяснение кода листинга программы
- mov ebx,7 - в этой строке кода происходит перенос числа 7 в регистр ebx.
- mov ecx,<длина массива> - в эту строку кода происходит перенос длины массива в регистр ecx.
- lea esi,Result - в эту строку кода происходит загрузка адреса переменной Result в регистр esi.
- cld - в эту строку кода происходит установка флага направления в 1, что означает, что операции деления и остатка от деления будут выполняться в прямом порядке.
- M:lodsq - в эту строку кода происходит загрузка квадратного корня из числа, которое хранится в регистре ecx, в регистр edi.
- mov edi,eax - в эту строку кода происходит перенос значения регистра eax в регистр edi.
- cdq - в эту строку кода происходит преобразование значения регистра edi в двузначное целое число, при этом старший бит (единицы до 7-го бита) очищается.
- div ebx - в эту строку кода происходит деление значения регистра edi на число, которое хранится в регистре ebx. Результат деления сохраняется в регистре edx.
- test edx,edx - в эту строку кода происходит проверка, не равно ли значение регистра edx нулю.
- jnz NoZ - если значение регистра edx не равно нулю, то происходит переход к метке NoZ.
- add Result,edi - в эту строку кода происходит добавление значения регистра edi к значению переменной Result.
- NoZ:loop M - если значение регистра edx равно нулю, то происходит переход к началу цикла M. Список не содержит 20 элементов, поскольку в коде отсутствуют некоторые строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д