Wymiana sortowania bąbelków zespołu

Próbuję wykonać sortowanie bąbelkowe w zespole x86 (tak, musi to być bańka, ponieważ nie obawiam się optymalizacji prędkości w odniesieniu do różnych rodzajów sortowania) iz jakiegoś powodu mój kod nie zamieni niezbędnych wartości. Oto mój kod

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

Na ostatniej instrukcji mov, gdzie ma załadować temp z powrotem na adres, to ... nie. Rejestr EAX ma adres początkowy tablicy, która zawiera moją listę wartości

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

a następny adres zawiera kilka kolejnych numerów. Po przecinku liczby są10 -20 5 12 30 -5 -22 55 52 0. Zasadniczo teraz próbuję się poruszyćFFFFFFEC do0000000A a potem ruszaj się0000000A doFFFFFFEC. Mogę zapisać go w moim rejestrze tymczasowym EDX, ale nie mogę zapisać wartości EDX w konkretnym adresie. Jakaś pomoc?

questionAnswers(2)

yourAnswerToTheQuestion