【发布时间】:2011-12-06 15:48:36
【问题描述】:
我有一个存储在 esi 中的 15 个随机整数的双字数组。我在下面有一个冒泡排序算法,它应该将值从最低到最高排列。但是,当我的程序运行该算法时,它似乎没有触及任何值,并且当我打印数组时,它与以前完全一样。想法?
BubbleSort PROC USES eax ebx ecx edx esi
mov ecx, 0
mov ecx, 15
OUTER_LOOP:
push ecx
mov ecx,0
mov ecx,14
mov esi, OFFSET arr
COMPARE:
mov ebx,0
mov edx,0
mov bl, [esi]
mov dl, [esi+1]
cmp bl,dl
jg SWAP
CONTINUE:
add esi,4
loop COMPARE
mov esi, OFFSET arr
pop ecx
loop OUTER_LOOP
jmp FINISHED
SWAP:
mov bl, [esi]
mov dl, [esi+1]
xchg bl,dl
mov [esi],dl
mov [esi+1],bl
jmp CONTINUE
FINISHED:
ret
BubbleSort ENDP
提前感谢您的帮助。
【问题讨论】: