我已成功按降序对数组进行排序,但我对如何将其按升序排序有点困惑。
我基本上也想将我的数组按升序排序,但我有点卡住了。我不知道是不是我多虑了,但我遇到了这么一个简单问题的大障碍。
这是我为将随机数数组排序为降序而编写的代码:
""" 排序列表过程
push ebp
mov ebp, esp
mov ecx, [ebp + 8]
mov esi, [ebp + 12]
dec ecx
outer_loop:
mov eax, [esi]
mov edx, esi
push ecx
inner_loop:
mov ebx, [esi + 4]
mov eax, [edx]
cmp eax, ebx
jge do_not_swap
;Else, push parameters and swap
add esi, 4
push esi
push edx
push ecx
call exchange
sub esi, 4
do_not_swap:
add esi, 4
loop inner_loop
;End the inner loop and restore outer loop stuff
pop ecx
mov esi, edx
add esi, 4
loop outer_loop
pop ebp
ret 8
排序列表ENDP """
非常感谢任何帮助!
非常感谢您抽出宝贵时间。
答案 0 :(得分:1)
jge do_not_swap
jge
指令表示 JumpIfGreaterOrEqual。
反转排序顺序是使用 jle
的简单问题,它代表 JumpIfLessOrEqual。也就是说,如果其余的代码像你说的那样工作正常......
1 个字符的改变,物超所值!