带进位的循环移位指令有:带进位的循环左移RCL(Rotate Left Through Carry)和带进位的循环右移RCR(Rotate Right)。
指令的格式:RCL/RCR Reg/Mem, CL/Imm
受影响的标志位:CF和OF
带进位的循环左移/右移指令只有移位的方向不同,它们都用原CF的值填补空出的位,移出的位再进入CF。具体功能如下图(a)、(b)所示。
![]()  |                                                           
      ![]()  |                                                           
    
| (a)、RCL | (b)、RCR | 
下面是几个带进位循环移位的例子及其执行结果。
|                                            
       双精度移动指令  |                                            
                                              
       指令操作数的初值  |                                            
                                              
       指令执行后的结果  |                                            
  
|                                           
       RCL AX, 1  |                                                  
                                                  
       CF=0,(AX)=0ABCDH  |                                              
                                                
       (AX)=579AH  | 
|                                             
       RCL AX, 1  |                                                  
                                                  
       CF=1,(AX)=0ABCDH  |                                               
                                                
       (AX)=579BH  |                                               
  
|                                             
       RCR AX, 2  |                                                  
                                                  
       CF=0,(AX)=0ABCDH  |                                               
                                                
       (AX)=AAF3H  |                                               
  
|                                             
       RCR AX, 2  |                                                  
                                                  
       CF=1,(AX)=0ABCDH  |                                               
                                                
       (AX)=EAF3H  |                                               
  
例5.12 编写指令序列把由DX和AX组成的32位二进制算术左移、循环左移1位。
解:
|                                                         
       (DX,AX)算术左移1位指令序列  |                                                        
                                                           
       (DX,AX)循环左移1位指令序列  | 
|                                                        
       SHL  AX, 1  |                                                                                                
                                                               
       SHLD  DX, AX, 1  |                                                                                                
  
学习和理解带进位的循环移位指令的控件。
下面的控件是把各种移位指令的模拟功能组合在一起。它不仅简单、直观地表达了各种移位指令的功能,而且能通过对照,理解它们之间的区别。该控件还结合了其它指令(CLC、STC和CMC)来增加指令的组合变化。