В одномерном массиве найти сумму элементов, расположенных до максимального элемента - 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'

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


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

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

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