设DATA=4000H,ABC=4050H,CODE=8000H, STACK1=6000H。回答问题并为加;行指令后加注释,注释不需很繁琐,解释清楚本行操作意图即可。
DATA SEGMENT
ABC DB 100, 10, 1
DATA ENDS
STACK1 SEGMENT STACK
DB 20 DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA, SS: STACK1
ORG 200H
BEGIN: MOV AX, DATA ;
MOV DS, AX ;
MOV AL, OF3H ;
LEA BX, ABC ;
MOV CX, 3
LOP: MOV DL, 30H ;
LOP1: SUB AL, [BX]
JB LOP2
INC DL
JMP LOP1
LOP2: ADD AL, [BX]
PUSH AX
MOV AH, 2
INT 21H
POP AX
LOOP LOP
MOV AH, 4CH
INT 21H ;
CODE ENDS
END BEGIN
第一次执行SUB AL,[BX]时,源操作数所在存储器的物理地址是 ① 。通过执行INC DL,其中在DL中出现过的最大值是 ② 。由指令LOOP LOP引起的循环有 ③ 次。程序执行的最后结果,在屏幕上显示 ④ 。程序执行结束时,寄存器AL中的最后结果是 ⑤ 。CPU直接执行该程序应从地址 ⑥ 开始。
使用DEBUG单步执行,根据执行结果回答。
①40000H②34H③3④243⑤33H⑥80200H