Задан массив из 12 элементов.Определить сумму всех чисел меньших 6-ти (СИ) - Assembler
Формулировка задачи:
Задан массив из 12 элементов.Определить сумму всех чисел меньших 6-ти если можно с пояснением
Решение задачи: «Задан массив из 12 элементов.Определить сумму всех чисел меньших 6-ти (СИ)»
textual
Листинг программы
format PE console entry start include 'D:\fasmw16726\INCLUDE\win32a.inc' section '.data' data readable writeable a dd 1,2,3,4,5,6,7,8,9,0,1,2 message db 'Результат = %d',0 r db 'Russian',0 sum dd ? section '.code' code readable executable start: xor eax,eax mov ecx,10 mov esi,a loo: cmp dword [esi+ecx*4],6 jg next add eax, [esi+ecx*4] next: loop loo push eax cinvoke setlocale,1,r pop eax ; CINVOKE макрос в составе FASM. ; Позволяет вызывать CDECL-функции. cinvoke printf,message,eax cinvoke getch ; INVOKE аналогичный макрос для STDCALL-функций. invoke ExitProcess,0 section '.idata' import data readable library kernel,'kernel32.dll',\ msvcrt,'msvcrt.dll' import kernel,\ ExitProcess,'ExitProcess' import msvcrt,\ setlocale,'setlocale',\ printf,'printf',\ getch,'_getch'
Объяснение кода листинга программы
- Объявлены переменные:
a
- массив из 12 элементов (1,2,3,4,5,6,7,8,9,0,1,2),message
- строка, содержащая сообщение, которое будет выведено на экран,r
- строка, содержащая указание на язык (русский),sum
- переменная, в которой будет храниться сумма чисел.
- В начале кода инициализируется регистр
eax
(он используется для хранения суммы чисел). - Далее устанавливается счётчик
ecx
(10), который определяет количество итераций цикла. - В качестве начального значения для цикла используется переменная
a
. - В цикле происходит сравнение каждого элемента массива
a
с числом 6. Если элемент больше или равен 6, то выполняется переход к следующему элементу. - Если элемент меньше 6, то к сумме
eax
прибавляется значение этого элемента. - После выполнения всех итераций цикла значение переменной
eax
содержит сумму чисел. - Выполняется набор действий, связанных с выводом сообщения на экран:
- Устанавливается локальная настройка для России.
- Выводится сообщение, содержащее значение переменной
eax
. - Ожидается нажатие клавиши.
- Завершается программа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д