📄 4k3.asm
字号:
PUBLIC TRD
DATA SEGMENT PARA PUBLIC 'DATA'
BUF DB 100
DB ?
DB 100 DUP(?)
TIP31 DB 'ENTER THE CHARS: '
DB '$'
TIP32 DB 'THE SORTED CHARS IS '
DB '$'
AGAIN3 DB ' PRESS ANY KEY TO COUNINUE. PRESS ESC TO EXIT. '
DB '$'
FLAG DB -1
DATA ENDS
STACK SEGMENT PARA PUBLIC 'STACK'
DB 200 DUP(?)
STACK ENDS
CODE SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CODE,DS:DATA,SS:STACK
TRD PROC NEAR
PUSH AX
PUSH CX
PUSH DX
PUSH DI
GO3: MOV AH,06H
MOV BH,07
MOV CX,0
MOV DX,184FH
INT 10H ;清屏
MOV AH,2
MOV DH,0
MOV DL,0
MOV BH,0
INT 10H ;光标控制
MOV AH,9
LEA DX,TIP31
INT 21H
MOV AH,0AH
LEA DX,BUF
INT 21H
LEA DI,BUF
INC DI
MOV BL,[DI]
MOV BH,0
LP31: CMP FLAG,0
JE OUTPUT
CMP BX,1
JE TT
DEC BX
TT: MOV CX,BX
LEA DI,BUF+2
MOV FLAG,0
LP32: MOV AL,[DI]
CMP AL,[DI+1]
JGE NEXT3
XCHG AL,[DI+1]
MOV [DI],AL
MOV FLAG,-1
NEXT3: INC DI
LOOP LP32
JMP LP31
OUTPUT: LEA DI,BUF
INC DI
MOV BL,[DI]
MOV BH,0
INC BX
ADD DI,BX
MOV AL,24H
MOV [DI],AL
MOV FLAG,-1
MOV AH,2
MOV DH,4
MOV DL,0
MOV BH,0
INT 10H ;光标控制
MOV AH,9
LEA DX,TIP32
INT 21H
LEA DX,BUF ;显示结果
INC DX
INC DX
MOV AH,9
INT 21H
MOV AH,2
MOV DH,8
MOV DL,0
MOV BH,0
INT 10H
LEA DX,AGAIN3
MOV AH,9
INT 21H
MOV AH,1
INT 21H
CMP AL,1BH
JZ EXIT
JMP GO3
EXIT: POP DI
POP DX
POP CX
POP AX
RET
TRD ENDP
CODE ENDS
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -