Когда я пытаюсь заставить мою сортировку пузырьков работать, используя числа [] в качестве массива и МАКСИМАЛЬНЫЙ в качестве размера массива.
Мне кажется, что в xchg eax, [esi + 4]
мне сообщают об ошибке, в которой говорится, что сгенерировано исключение.
Что не так?
extern "C" void bubble(int numbers[], int MAX) {
int swap;
_asm {
push MAX
push numbers
push ebp
mov ebp, esp
outerLoop :
mov swap, 0
mov ecx, [ebp + 12]
mov esi, [ebp + 8]
innerLoop :
mov eax, [esi]
cmp[esi + 4], eax
jg nextStep
xchg eax, [esi + 4]
mov[esi], eax
mov swap, 1
nextStep:
add esi, 4
loop innerLoop
cmp swap, 0
jz loopEnd
jnz outerLoop
loopEnd :
pop ebp
add esp, 8
}
}