只适用于五个数字从打到小排列。
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
da