问题 单项选择题

实现将DX:AX中存放的32位数扩大4倍,正确的程序段是 ( )
A) SHL AX,2
ROL DX,2
B) RCL AX,2
SHL DX,2
C) MOV CX,2
LOP:SHL AX,1
RCL DX,1
LOOP LOP
D) SHL AX,1
SHL AX,1
RCL DX,1
RCL DX,1

答案

参考答案:C

解析: 在使用移位指令对32位数进行扩大或缩小倍数操作时,一定要注意它的 CF位,如果不考虑它的CF位,操作后的结果可能就是错误的。所以在本题中,要对一个32位数扩大4倍,即对32位数向左移2位。在移低字的时候用SAL或SHL命令都可以,但对低字操作后紧接着一定要对高字操作,这样才能保证CF的位不被落下。对高字操作时一定要使用RCL带进位循环左移。根据这些方面所以选项C的程序段是正确的。

多项选择题
填空题 案例分析题