带进位的循环左移/右移指令只有移位的方向不同,它们都用原CF的值填补空出的位,移出的位再进入CF。
例如,将由DX、AX组成的32位二进制数整体算术右移1位
AX右移1位好办,只要SHR AX,1一条指令就可以了;但要把DX右移出的1位移进AX的最高位,该怎办呢?
SHR DX,1 ;DX移出的1位影响标志位
RCR AX,1 ;先用进位标志CF填补AX空出的1位,然后将AX最右边的1位移进CF