问答题 从STRIN单元起有100个字符,将其中所有大写英文字母修改为小写英文字母,将其中的十进制数字符‘0’~‘9’找出,存放到DNUM单元起的存储区中,并将该存储区长度存入DNUML单元中。
【正确答案】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
【答案解析】