问答题 分析下列程序:
   DATA   SEGMENT
   NUM    DB 06H
   SUM    DB?
   DATA   ENDS
   STACK  SEGMENT PARA STACK'STACK'
   STAPN  DW 100 DUP(?)
   STACK  ENDS
   CODE   SEGMENT
          ASSUME CS:CODE,DS:DATA,SS:STACK
   START:MOV AX,DATA
          MOV DS,AX
          PUSH AX
          PUSH DX
          CALL AAA
          MOV AH,4CH
          INT 21H
   AAA    PROC
          XOR AX,AX
          MOV DX,AX
          INC DL
          MOV CL,NUM
          MOV CH,00H
   BBB:  ADD AL,DL
          DAA
          INC DL
          LOOP BBB
          MOV SUM,AL
          RET
   AAA    ENDP
   CODE   ENDS
          END START
   (1) 程序执行到MOVAH,4CH语句时,AX=?DX=?SP=?
   (2) BBB:ADD AL,DL语句的功能是什么?
   (3) 整个程序的功能是什么?
【正确答案】(1) 程序执行到MOVAH,4CH语句时,AX=1+2+3+4+5+6=21H,DX=07H,SP初值为200B=C8H,当程序执行到MOV AH,4CH时,由于堆栈仍压入了AX、DX,故SP=C4H。(2) BBB:ADD AL,DL语句的功能是将AL和DL中的两个BCD数相加,结果存入AL。(3) 整个程序的功能是对1~6的自然数进行BCD数求和,结果为BCD数,存于NUM。
【答案解析】