Кто-нибудь может объяснить мне битовые сдвиги ARM, как будто мне пять лет? Я очень плохо понимаю все, что связано с недесятичными системами счисления, поэтому понимание концепций битовых сдвигов и битовых операторов для меня сложно.
Что будет делать каждый из следующих случаев и почему (что окажется в R3
и что происходит за кулисами на уровне битов)?
/** LSL **/
mov r0, #1
mov r3, r0, LSL#10
/** LSR **/
mov r0, #1
mov r3, r0, LSR#10
/** ORR **/
mov r0, #1
mov r1, #4
orr r3, r1, r0
/** AND **/
mov r0, #1
mov r1, #4
and r3, r1, r0
/** BIC **/
mov r0, #1
mov r1, #4
bic r3, r1, r0
PS. Не объясняйте это в терминах битовых операторов языка Си. Я тоже не знаю, что они делают (>>
, <<
, |
, &
).