写出将AL的内容乘以10送AX保存的程序段
【正确答案】:第①种方法
ADD AL,AL
MOV BL,AL
ADD AL,AL
ADD AL,AL
ADD AL,BL
第②种方法
SHL AL,1
MOV BL,AL
SHL AL,1
SHL AL,1
ADD AL,BL
以上两各方法均需假设AL的原始值足够小,即乘以10后,依然可在8位二进制代码的表示范围之内,如果考虑一般情况,则还应对AH作适当处理,以第②种方法为例,应写成下面形式:
MOV AH,0
SHL AL,1
MOV BL,AL
RCL AH,1
MOV BH,AH
SHL AL,1
RCL AH,1
SHL AL,1
RCL AH,1
ADD AL,BL
ADC AH,BH
当然直接使用乘法指令也是可以的:
MOV BL,10
MUL BL
这样操作的结果(乘积)直接送入AX
【题目解析】:ADD AL,AL和SHL AL,1都表示加倍。RCL AH,1表示循环左移一位,进位CF中的内容又移到AH中的最低一位。
写出将AL的内容乘以10送AX保存的程序段
- 2024-09-08 13:24:53
- 汇编语言程序设计(02321)