问题
单项选择题
实现将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的程序段是正确的。