В одномерном массиве найти сумму элементов, расположенных до максимального элемента - Assembler
Формулировка задачи:
В одномерном массиве найти сумму элементов, расположенных до максимального элемента. Если можно, с комментариями, пожалуйста.
Решение задачи: «В одномерном массиве найти сумму элементов, расположенных до максимального элемента»
textual
Листинг программы
format PE console 4.0 entry start include 'win32ax.inc' section '.text' code readable executable start: ;вычисление lea esi, [Array] mov ecx, [N] mov ebx, [esi] ;max xor edx, edx ;сумма до максимального элемента xor edi, edi ;сумма до текущего элемента .for: lodsd cmp ebx, eax cmovl ebx, eax cmovl edx, edi add edi, eax loop .for ;вывод результата cinvoke printf, aszFmt, ebx, edx ;ожидание нажатия ENTER cinvoke printf, aszPressEnter invoke _getch invoke ExitProcess, 0 section '.data' data readable writeable aszFmt db 'max=%d Sum=%d', 0Dh, 0Ah, 0 aszPressEnter db 0Dh, 0Ah, 0Dh, 0Ah, "Press any key to exit", 0 N dd 16 Array dd 6, -51, 87, 3, -90, -23, 60, 8, -36, -51, -71, -95, 2, 98, -15, -25 section '.idata' import data readable writeable library kernel32,'KERNEL32.DLL',\ user32,'USER32.DLL',\ msvcrt, 'msvcrt.dll' include 'api\kernel32.inc' include 'api\user32.inc' import msvcrt,\ printf, 'printf',\ _getch,'_getch'
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д