问答题
分析下列程序:
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。
【答案解析】