Команды сдвига.
Эти операции производятся только над регистрами общего назначения. При этом МК AVR позволяют легко оперировать как знаковыми, так и бес знаковыми числами, а также работать с числами, представленными в дополнительном коде. Также с помощью флага С можно осуществлять проверку 8-и битовых данных на четность/нечетность если использовать одну из команд сдвига. Т.к. при определении четности/нечетности нас интересует младший разряд данных, то удобнее использовать сдвиг данных вправо через флаг переноса С. После сдвига младший бит данных окажется во флаге С. Теперь достаточно просто проверить, чему равен флаг. Если С=1, то данные были нечетные, а если С=0, то – четные. Однако при таком способе проверки данные в регистре тоже будут испорчены. Для их восстановления следует сдвинуть содержимое регистра обратно – на один разряд влево. Логические и циклические сдвиги обычно используются в программах умножения, деления и т.д., а арифметические при работе со знаковыми числами. asr Rd - арифметический сдвиг вправо lsl Rd - логический сдвиг влево lsr Rd - логический сдвиг вправо ror Rd - циклический сдвиг вправо rol Rd - циклический сдвиг вправо
|