问答题 从DAT单元起有10个ASCⅡ码,将其中的0~9、A~F之间的字符转换成二进制数存回原单元,并统计转换个数存入DAT+10单元。
【正确答案】DATA  SEGMENT
   DAT    DB'ABCD ! 12345'
          DB 0
   DATA   ENDS
   CODE   SEGMENT
     ASSUME CS: CODE,DS: DATA
   START: MOV  AX,DATA
          MOV  DS,AX
          LEA  SI,DAT
          MOV  CX,10
   NEXT:  MOV  AL,[SI]
          CMP  AL,'0'
          JB   LOP
          CMP  AL,'9'
          JA   A1
          INC  DAT+10
          SUB  AL,30H
          JMP  A2
   A1:    CMP  AL,'A'
          JB   LOP
          CMP  AL,'F'
          JA   LOP
          SUB  AL,37H
          INC  DAT+10
   A2:    MOV  [SI],AL
   LOP:   INC  SI
          LOOP NEXT
          MOV  AL,DAT+10
          MOV  AH,0
          MOV  BL,10
          DIV  BL
          ADD  AX,3030H
          MOV  DX,AL
          MOV  AH,02H
          INT  21H
          MOV  DL,DH
          INT  21H
          MOV  AH,4CH
          INT  21H
   CODE   ENDS
   END    START
【答案解析】