2015-03-28 2 views

ответ

3

Вращайте левый регистр немедленно, затем and с маской.

Повернуть налево 0 здесь, чтобы мы могли игнорировать это. Маска - это все биты, установленные от 13 до 13, а это только бит 13 (0x2000 в виде битмаски, эта команда, вероятно, была выбрана всего лишь and для документирования того, что выбран бит 13).

Так что в этом случае нам нужно построить маску для бит 13, а затем применить побитовое значение and с источником.

r31 = r0 & (1 << 13); 

<< является сдвиг влево операции в C, мы используем его здесь, чтобы создать маску только для бита 13. & является и операция в С.

источник Документация: http://sametwice.com/rlwinm

+0

Спасибо за ваш ответ! Я знаю, что я не задавал этого в оригинальном вопросе, но могли бы вы вкратце объяснить, как это работает? – Shark

+0

Я отредактировал ответ, чтобы объяснить, как это работает более подробно. Если это правильно, вы можете принять ответ, чтобы закрыть вопрос (добавьте галочку в левой части) –

+0

Еще раз спасибо, я принял ваш ответ как правильный, но мне просто интересно, откуда пришел 1? '1 << 13' – Shark