用汇编实现统计空格个数

用汇编实现输入一串字符串,统计其中空格、数字、大写字母、小写字母的个数。代码调试时没问题,但在DOS界面运行时输出乱码,求各位大神指导,哪里出错

DATA SEGMENT
BUFFER DB 10,?,10 DUP(?)
COUNT DB 4 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AH,10
INT 21H
LEA BX,BUFFER+1
MOV CL,[BX]
MOV CH,0
ONE: ADD BX,1
MOV AL,[BX]
CMP AL,20H
JNE L2
L1: INC COUNT[0]
JMP TWO
L2: CMP AL,39H
JA L3
INC COUNT[1]
JMP TWO
L3: CMP AL,5AH
JA L4
INC COUNT[2]
JMP TWO
L4: INC COUNT[3]
TWO: LOOP ONE
THREE: MOV CX,4
MOV SI,0
MOV AH,02H
EXIT: MOV DL,0DH
INT 21H
MOV DL,0AH
INT 21H
MOV DL,COUNT[SI]
ADD DL,30H
INT 21H
INC SI
LOOP EXIT
MOV AX,4C00H
INT 21H
CODE ENDS
END START