关于汇编ROR的运算

来源:百度知道 编辑:UC知道 时间:2024/05/14 12:24:35
设(AX)=5,(BX)=3 ,(CX)=2,执行下列程序段后,(AX)=
LOP: ROR BX,CL
ADC AX,BX
LOOP LOP
请问ROR是怎么移位的?谢谢

ROR是循环右移指令,把目的操作数整体右移由源操作数指定的位数,被移出的位依次回填到左边空出的位,同时移进标志位。

如本题,(BX)=3 ,(CX)=2

3转换成二进制数为:00000011B,循环右移一位之后变成:10000001B;再循环右移一位之后变成:11000000B,第一次执行循环体后(BX)=0C000H,这里一定要注意,第二次循环右移时,进位标志位置位。

程序段
LOP: ROR BX,CL
ADC AX,BX
LOOP LOP
执行后,(AX)=2006H

是循环右移,不带进位的

图片是循环左移,没有找到右移的,只要把箭头反过来就可以了