RCR和ROR有什么区别?

Foo*_*Foo 8 assembly x86-16

我理解RCR将从右到左旋转位的术语,从进位中取出位,同时ROR将位从右向左旋转,从右侧取位,但这是它们之间的唯一区别吗?如果是这样,两条指令似乎都做同样的工作.请帮忙.谢谢

Pau*_*l R 30

RCR在旋转中包含进位标志,因此它实际上是N + 1位旋转,而ROR不包括进位标志,所以它只是N位旋转.

来自www.c-jump.com的一些不错的图表:

在此输入图像描述

在此输入图像描述


And*_*per 7

两条指令都从左向右旋转位(左侧位是MSB).

RCR将进位标志旋转到MSB,将LSB旋转到进位标志.

ROR将LSB旋转到MSB而不通过进位标志.

+--> CF -->  MSB --> ... -> LSB --+
|                                 |      RCR
+---------------------------------+


+-> CF      +-> MSB --> ... -> LSB --+
|           |                        |      ROR
+------------------------------------+
Run Code Online (Sandbox Code Playgroud)