题目
执行下列程序后,(AL)=( )。 MOVAL,92H SUBAL,7lH DASA. 21B. 11C. 21HD. 11H
执行下列程序后,(AL)=( )。 MOVAL,92H SUBAL,7lH DAS
A. 21
B. 11
C. 21H
D. 11H
题目解答
答案
C. 21H
解析
本题考查汇编语言中的减法指令SUB与十进制调整指令DAS的综合应用。解题关键在于:
- 理解SUB指令执行带符号减法,并判断是否产生借位标志CF;
- 掌握DAS指令的作用:在减法后调整AL寄存器的结果,确保其符合BCD(二进制编码十进制)规则;
- 注意DAS的调整条件:若CF=1(有借位),则从结果中减去0AH;若CF=0,则仅调整AF标志,不改变结果。
指令执行步骤分析
1. MOV AL, 92H
- 功能:将十六进制数
92H(二进制10010010)加载到AL寄存器。 - 结果:
AL = 92H(十进制146)。
2. SUB AL, 71H
- 功能:执行
AL = AL - 71H(71H为十六进制数,二进制01110001)。 - 计算过程:
- 直接减法:
92H - 71H = 21H(十进制33)。 - 无借位发生,标志位CF=0。
- 直接减法:
3. DAS
- 功能:调整AL中的结果,使其符合BCD规则。
- 判断条件:
- CF=0,说明无借位,无需减去0AH。
- AL的值
21H(十进制33)的高位(2)和低位(1)均有效,无需调整。
- 结果:AL保持
21H不变。