汇编语言ROR(循环右移)指令:将操作数所有位都向右移


ROR(循环右移)指令把所有位都向右移,最低位复制到进位标志位和最高位。该指令格式与 SHL 指令相同:


在下例中,请注意最低位是如何复制到进位标志位和结果的最高位的:

mov al, 0lh          ; AL = 00000001b
ror al, 1               ; AL = 10000000b, CF = 1
ror al, 1               ; AL = 01000000b, CF = 0

循环多次

当循环计数值大于 1 时,进位标志位保存的是最后循环移出 LSB 的位:

mov al, 00000100b
ror al, 3              ; AL = 10000000b, CF = 1