И в ассемблере и в Си << - одно и то-же. Многократный побитовый сдвиг влево.gearbox79 писал(а): P. S. Спасибо ChipKiller за разяснения с << Действилельно в асме и С функции разные. В асме это битовая маска
ldi R16,(1<<3|1<<5) ;записать единицу в 3-й и 5-й биты регистра R16 в асме
1 << 3 - сдвинуть единицу влево 3 раза.
ldi R16,(1<<3|1<<5) - это инструкция процессора занести в r16
immediate value - непосредственное значение.
Значение представлено выражением, которое рассчитывает ассемблер
при компиляции. При рассчете выражения
используются те-же приоритеты операций, что и в Си.
Т.е << приоритетнее, чем |. Поэтому рассчет выражения выполняется так :
Единица сдвинутая влево 3 раза и единица сдвинутая влево 5 раз
побитово логически складываются (OR-ятся).
Непосредственное значение получается равным 00101000 двоично.


