程序略作修改:
DATA SEGMENT
ARRAY DB 0,1,5,3,9,2,4,2,1,7,10,20,50,80
NUMBER EQU $-ARRAY
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV BX,NUMBER
MOV DX,BX
Z000: DEC BX
MOV CX,BX
LEA SI,ARRAY
Z008: MOV AL,[SI]
CMP AL,[SI+1]
JL FDG
XCHG AL,[SI+1]
MOV [SI],AL
FDG: INC SI
LOOP Z008
DEC DX
CMP DX,1
JA Z000
; 以下输出排序结果
LEA SI,ARRAY
MOV CX,NUMBER
@P:
MOV AL,[SI]
MOV AH,0
MOV BL,10
DIV BL
PUSH AX
MOV DL,AL
OR DL,30H
MOV AH,2
INT 21H
POP AX
MOV DL,AH
OR DL,30H
MOV AH,2
INT 21H
MOV DL,32
INT 21H
INC SI
LOOP @P
MOV AH,4CH
INT 21H
CODE ENDS
END START