问题 单项选择题

实现将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的程序段是正确的。

单项选择题
问答题 简答题