В чем разница между RCR и ROR?
Я понимаю из условия, что RCR
будет вращать бит справа налево, принимая - чуть из переноски пока ROR
будет вращать бит справа налево, принимая бит справа но это единственное различие между ними? Если это так, то обе инструкции, похоже, выполняют одну и ту же работу. Пожалуйста, помогите. Спасибо
2 ответов
RCR включает флаг переноса во вращении, поэтому он эффективно вращается на N+1 бит, тогда как ROR не включает флаг переноса, поэтому он просто вращается на N бит.
некоторые хорошие диаграммы из www.c-jump.com:
обе инструкции вращают биты слева направо (где левый бит является MSB).
RCR поворачивает флаг переноса в MSB и LSB к флагу переноса.
ROR поворачивает LSB к MSB без прохождения флага переноса.
+--> CF --> MSB --> ... -> LSB --+
| | RCR
+---------------------------------+
+-> CF +-> MSB --> ... -> LSB --+
| | | ROR
+------------------------------------+