STA SEGMENT STACK
DW 40H DUP(?)
TOP LABEL WORD
STA ENDS
DATA SEGMENT
CRLF DB 0DH,0AH,24H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAIN PROC FAR
MOV AX,STA
MOV SS,AX
LEA SP,TOP
MOV AX,DATA
MOV DS,AX
MOV CX,16
XOR BX,BX
L10:MOV AH,1
INT 21H
CMP AL,0DH
JE L9
CMP AL,30H
JB L10
CMP AL,31H ; 输入
JA L10
AND AX,1
SHL BX,1
ADD BX,AX
LOOP L10
L9:
MOV AH,9
LEA DX,CRLF
INT 21H
;实现回车换行操作
MOV DL,0
MOV CX,10H
L1:SHL BX,1
ADC DL,0
LOOP L1
;DL完成计数
MOV SI,0
L20: XOR AX,AX
MOV DH,0
MOV AX,DX
MOV BL,10
DIV BL
MOV DL,AL
INC SI
PUSH AX ;整除求得余数进栈
CMP AL,0
JA L20
CMP AL,0
JB L20
L30:MOV DL,30H
POP AX
ADD DL,AH
MOV AH,2 ;出栈输出
INT 21H
DEC SI
JNE L30
MOV AH,4CH
INT 21H
MAIN ENDP
CODE ENDS
END MAIN