问答题 有一个50个数据的数据区,统计其为偶数数据或为奇数数据各为多少,分别存入A和B单元中。
【正确答案】DATA  SFGMENT
   D   DB 12H,34H,89H,0ABH,0CBH,12H,34H,89H,0ABH,0CBH
       DB 12H,34H,89H,0ABH,0CBH,12H,34H,89H,0ABH,0CBH
       DB 12H,34H,89H,0ABH,0CBH,12H,34H,89H,0ABH,0CBH
       DB 12H,34H,89H,0ABH,0CBH,12H,34H,89H,0ABH,0CBH
       DB 12H,34H,89H,0ABH,0CBH,12H,34H,89H,0ABH,0CBH
   A   DB 0
   B   DB 0
   DATA  ENDS
   CODE  SEGMENT
     ASSUME  CS: CODE,DS: DATA
   START: MOV  AX,DATA
          MOV  DS,AX
          LEA  SI,D
          MOV  CX,50
   LOP:   MOV  AL,[SI]
          TEST AL,01H    ;判断最后一位是否为1
          JNZ  A1   ;是奇数,转到A1
          INC  A    ;是偶数,A加1
          JMP  NEXT
   A1:    INC  B    ;是奇数,B加1
   NEXT:  INC  SI
          LOOP LOP
          MOV  AL,A    ;显示A
          CALL ABC
          MOV  DL,OAH    ;回车
          INT  21H
          MOV  DL,0DH
          INT  21H
          MOV  AL,B    ;显示B
          CALL ABC
          MOV  AH,4CH
          INT  21H
   ABC    PROC
          CMP  AL,0   ;判断是否为0
          JZ   0V    ;为0,转到0V
          MOV  AH,0
          MOV  BL,10
          DIV  BL
          MOV  DL,AL
          MOV  DH,AH
          ADD  DL,30H
          MOV  AH,02H
          INT  21H
          MOV  DL,AH
          ADD  DL,30H
          INT  21H
   OV:    RET
          MOV  DL,AL    ;显示0
          ADD  DL,30H
          MOV  AH,02H
          INT  21H
          JMP  0V
   ABC    ENDP
   CODE  ENDS
   END START
【答案解析】