DATA SEGMENT
DT0 DB 13, 10
DT1 DB 100 DUP('$')
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
AGN:
MOV AX, DATA
MOV DS, AX
MOV DI, 0
LEA SI, DT1
LOOP0:
MOV AH, 1
INT 21H
CMP AL, 0DH
JE BEGIN
MOV [SI], AL
INC SI
INC DI
JMP LOOP0
BEGIN:
SUB DI, 1
MOV CX, DI
LOOP1:
MOV DX, CX
MOV BX, 0
LOOP2:
MOV AL, DT1[BX]
CMP AL, DT1[BX + 1]
JAE NO_CHANGE
XCHG AL, DT1[BX + 1]
MOV DT1[BX], AL
NO_CHANGE:
INC BX
LOOP LOOP2
MOV CX, DX
LOOP LOOP1
LEA DX, DT0
MOV AH, 09H
INT 21H
MOV AX, 4C00H
INT 21H
CODE ENDS
END AGN
好用了。