循环移位指令有:循环左移ROL(Rotate Left)和循环右移ROR(Rotate Right)。
指令的格式:ROL/ROR Reg/Mem, CL/Imm
受影响的标志位:CF和OF
循环左移/右移指令只是移位方向不同,它们移出的位不仅要进入CF,而且还要填补空出的位。具体功能如下图(a)、(b)所示。
(a)、ROL | (b)、ROR |
下面是几个循环移位的例子及其执行结果。
循环移位指令 | 指令操作数的初值 | 指令执行后的结果 |
ROL AX, 1 | (AX)=6789H | (AX)=0CF12H |
ROL AX, 3 | (AX)=6789H | (AX)=3C4BH |
ROR AX, 2 | (AX)=6789H | (AX)=59E2H |
ROR AX, 4 | (AX)=6789H | (AX)=9678H |
学习和理解不带进位的循环移位指令的控件。