标签:
wave伟福排序从大到小汇编 |
分类: 计算机 |
只适用于五个数字从打到小排列。
data SEGMENT
A DW 5 DUP(12,33,78,4,5)
FLAG DW ?
data ENDS
stack SEGMENT
MAIN PROC FAR
ASSUME DS:DATA,CS:stack
START:
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV CX,5
MOV SI,0
DEC CX
LOOP1:
MOV DI,CX
MOV BX,0
LOOP2:
MOV AX,A[BX]
CMP AX,A[BX+2]
JGE CONTINUE
MOV SI,1
XCHG AX,A[BX+2]
MOV A[BX],AX
CONTINUE:
ADD BX,2
LOOP LOOP2
MOV CX,DI
TEST SI,0FFH
JZ LOOP3
LOOP LOOP1
MOV CX ,5
MOV SI, 0
LOOP3:
MOV DX,A[SI]
ADD DX,30H
ADD SI ,2
MOV AH, 02H
INT 21H
LOOP LOOP3
MOV AX,4C00H
INT 21H
MAIN ENDP
stack ENDS
END START
A DW 5 DUP(12,33,78,4,5)
FLAG DW ?
data ENDS
stack SEGMENT
MAIN PROC FAR
ASSUME DS:DATA,CS:stack
START:
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV CX,5
MOV SI,0
DEC CX
LOOP1:
MOV DI,CX
MOV BX,0
LOOP2:
CONTINUE:
LOOP LOOP1
MOV CX ,5
MOV SI, 0
LOOP3:
INT 21H
LOOP LOOP3
MOV AX,4C00H
INT 21H
MAIN ENDP
stack ENDS
END START
data segment
a db
25h
b db
10h
c db
33h
d db
02h
e db
11h
data ends
stack segment stack
dw 100 dup(?)
stack ends
code segment
assume cs:code,ds:data,ss:stack
start:mov ax,data
mov ds,ax
mov al,a
mov bl,b
cmp al,bl
jg m1
mov b,al
mov al,bl
m1:mov bl,c
cmp al,bl
jg m2
mov c,al
mov al,bl
m2:mov
bl,d
cmp
al,bl
jg m3
mov
d,al
mov
al,bl
m3:mov
bl,e
cmp
al,bl
jg m4
mov
e,al
mov
al,bl
m4:mov a,al
mov
al,b
mov
bl,c
cmp
al,bl
jg m5
mov
c,al
mov
al,bl
m5:mov bl,d
cmp
al,bl
jg m6
mov
d,al
mov
al,bl
m6:mov bl,e
cmp
al,bl
jg m7
mov
e,al
mov
al,bl
m7:mov b,al
mov
al,c
mov
bl,d
cmp
al,bl
jg m8
mov
d,al
mov
al,bl
m8:mov bl,e
cmp
al,bl
jg m9
mov
e,al
mov
al,bl
m9:mov c,al
mov al,d
mov
bl,e
cmp
al,bl
jg m10
mov
e,al
mov
al,bl
m10:mov d,al
q:jmp q
code ends
end start
。
data ends
stack segment stack
stack ends
code segment
assume cs:code,ds:data,ss:stack
start:mov ax,data
code ends
end start