|
|
![]() |
|
循环移位指令有:循环左移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 |
学习和理解不带进位的循环移位指令的控件。