【正确答案】DATA SEGMENT
STRIN DB 10DUP('ABCl5DJ4K6')
DNUM DB 100DUP(7)
DNUML DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE,DS: DATA
START: MOV AX,DATA
MOV DS,AX
LEA SI,STRIN ;置数据区地址指针
LEA DI,DNUM
MOV CX,100 ;置计数初值
NEXT: MOV AL,[SI] ;取字符
CMP AL,'A' ;判断是否大于'A'
JB LP1 ;不是,转LP1
CMP AL,'Z' ;判断是否小于'Z'
JA LP2 ;不是,转LP2
SUB AL,20H ;是大写字母,转换为小写
MOV [SI],AL ;存入原位置
JMP LP2 ;转LP2
LP1: CMP AL,'0' ;判断是否大于'0'
JB LP2 ;不是,转LP2
CMP AL,'9' ;判断是否小于'9'
JA LP2 ;不是,转LP2
MOV [DI],AL ;存入DNUM
INC DI ;调整指针
INC DNUML ;数字个数加1
LP2: INC SI ;调整指针
LOOP NEXT ;未完,转NEXT
MOV CX,100 ;置计数初值
LEA SI,STRN
NXT: MOV DL,[SI] ;显示字符串
MOV AH,02H
INT 21H
INC SI
MOV DL,',' ;显示','
INT 21H
LOOP NXT ;未完,转NXT
MOV AH,4CH
INT 21H
CODE ENDS
END START
【答案解析】