Сборка пузыря сортировка своп

Я пытаюсь выполнить пузырьковую сортировку в сборке x86 (да, она должна быть пузырьковой, так как меня не волнует оптимизация скорости для различных типов сортировок), и по какой-то причине мой код не поменяет местами необходимые значения. Вот мой код

mov eax, list                   ;store list in eax
mov edx,[eax+4*edi-4]           ;temp = var1
cmp edx,[eax+edi*4]             ;compare
JLE SECOND_LOOP                 ;jump if var1 < var2
mov [eax+4*edi-4],[eax+edi*4]   ;var1 = var2
mov [eax+edi*4], edx            ;var2 = temp
jmp SECOND_LOOP

В последней команде mov, в которой предполагается загрузить временную переменную обратно в адрес, он не выполняет. Регистр EAX имеет начальный адрес массива, который содержит мой список значений

0x*starting address* 0a 00 00 00 ec ff ff ff 05 00 00 00 0c 00 00 00 1e 00 00 00 fb ff ff ff ea
0x*address after   * ff ff ff 37 00 00 00 34 00 00 00 00 00 00 00

и следующий адрес содержит еще несколько цифр. В десятичных числах10 -20 5 12 30 -5 -22 55 52 0, По сути, сейчас я пытаюсь двигатьсяFFFFFFEC в0000000A а затем двигаться0000000A вFFFFFFEC, Я могу сохранить его в моем временном регистре EDX, но не могу сохранить значение EDX по указанному адресу. Любая помощь?

Ответы на вопрос(2)

Ваш ответ на вопрос