问答题 从DAT+1单元起有一组单字节带符号数,数组长度存于DAT单元。编程统计其中正数、负数和0各有多少个,并将统计结果分别存入PUNM、MNUM及ZNUM单元中。
【正确答案】DATA  SEGMENT
   DAT    DB 10
          DB 12H,35H,89H,98H,OABH,OBCH,56H,21H,69H,84H
   PUNM   DB 0
   MNUM   DB 0
   ZNUM   DB 0
   DATA   ENDS
   CODE   SEGMENT
     ASSUME CS: CODE,DS: DATA
   START: MOV  AX,DATA
          MOV  DS,AX
          LEA  SI,DAT+1
          MOV  CL,DAT
          MOV  CH,0
   NEXT:  MOV  AL,[SI]
          CMP  AL,0
          JZ   A1
          TEST AL,80H
          JNZ  A2
          INC  PUNM
          JMP  A3
   A1:    INC  ZNUM
          JMP  A3
   A2:    INC  MNUM
   A3:    INC  SI
          LOOP NEXT
          MOV  AL,PUNM
          CALL ABC
          MOV  AL,MNUM
          CALL ABC
          MOV  AL,ZNUM
          CALL ABC
          MOV  AH,4CH
          INT  21H
          ABC  PROC
          CMP  AL,0
          JZ   B1
          MOV  AH,0
          MOV  BL,10
          DIV  BL
          ADD  AX,3030H
          MOV  DL,AL
          MOV  DH,AH
          MOV  AH,02H
          INT  21H
          MOV  DL,DH
          INT  21H
          JMP  B2
   B1:    MOV  DL,'0'
          MOV  AH,02H
          INT  21H
   B2:    MOV  DL,','
          INT  21H
          ABC  ENDP
   CODE   ENDS
   END    START
【答案解析】