[masm32] Записать в массив2 только те элементы из массива1, которые больше суммы чётных элементов массива1 - Assembler

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Я тут попробовал написать функцию на masm32, которая сначала вычисляет сумму четных элементов массива1, а потом записывает в массив2 только те элементы из массива1, которые больше суммы четных элементов. Проблема в том, что у меня программа компилируется, но крашится после вызова моей функции. Можете помочь мне найти ошибки в моем коде?
Part2 proc    FirstArray:DWORD, Number:DWORD, ResultArray:DWORD
    pushad
    mov esi, [FirstArray]       
    mov ecx, [Number]
    xor ebx,ebx
m1: 
    mov EDX, [esi+ecx*4-4] 
    test EDX,1
    jnz m3
    add ebx,EDX
    jmp m3
m3:
    dec ecx
    jcxz m2
    loop m1
      
m2:
mov esi, [ResultArray]   
mov edi, [FirstArray]   
mov ecx, [Number]
m4:
mov edx, [edi+ecx*4]
cmp edx, ebx ; IF (FirstArray> Sum) 
jg m5
dec ecx
jcxz Exit
loop m4
m5:
mov edx, [edi+ecx*4-4]
mov [esi + ecx*4-4], edx
jmp m4
 
Exit:
popad
ret
Part2 endp

Решение задачи: «[masm32] Записать в массив2 только те элементы из массива1, которые больше суммы чётных элементов массива1»

textual
Листинг программы
.data?
Result dd 100 dup(?)
LenResult dd ?
.......
.code
...........
invoke Process, ADDR Array, [N], ADDR Result, ADDR LenResult
.........

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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