📄 xw01.asm
字号:
data SEGMENT
buf1 DB 20 DUP(?)
buf2 db 0dh,0ah,'$'
data ENDS
stack SEGMENT
DW 50 DUP(?)
stack ENDS
code SEGMENT
ASSUME CS:code,DS:data,SS:stack
start:MOV AX,data
MOV DS,AX
MOV AX,stack
MOV SS,AX
MOV BX,0
MOV CX,20
input:MOV AH,1
INT 21h
CMP AL,39h
JBE z1
ADD AL,9
z1: AND AL,0fh
PUSH CX
MOV CL,4
SAL AL,CL
MOV DL,AL
MOV AH,1
INT 21h
CMP AL,39h
JBE z2
ADD AL,9
z2: AND AL,0fh
OR AL,DL
MOV buf1[BX],AL
INC BX
MOV DL,','
MOV AH,2
INT 21h
POP CX
LOOP input
MOV BX,0ffffh
MOV CX,20
DEC CX
L1: MOV DX,CX
L2: INC BX
MOV AL,buf1[BX]
CMP AL,buf1[BX+1]
JLE cont1
XCHG AL,buf1[BX+1]
MOV buf1[BX],AL
cont1:LOOP L2
MOV CX,DX
MOV BX,0ffffh
LOOP L1
;
LEA DX,buf2
MOV AH,9
INT 21h
MOV BX,0
MOV CX,20
output:MOV DL,buf1[BX]
PUSH CX
PUSH DX
AND DL,0f0h
MOV CL,4
SHR DL,CL
CMP DL,0ah
JB s1
ADD DL,07h
s1: ADD DL,30h
MOV AH,2
INT 21h
POP DX
AND DL,0fh
CMP DL,0ah
JB s2
ADD DL,07h
s2: ADD DL,30h
MOV AH,2
INT 21h
INC BX
MOV DL,','
MOV AH,2
INT 21h
POP CX
LOOP output
MOV AH,4ch
INT 21h
code ENDS
END start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -