Цитата(serj32 @ Mar 30 2013, 21:24)

Здравствуйте.Вот если полностью "закинуть" ну например регистр R19 в регистр данных PORTB-здесь понятно.
out PORTB,R19
A как мне переместить ну скажем 2 бит регистра R19 в PORTB на 2 бит.
Это новерно будет так:
out PD2,R19.2
Спасибо.
Имеется ввиду переместить в PORTB состояние бита 2 регистра r19?
in r16, PORTB
mov r17, r19
andi r16, ~(1<<2)
andi r17, (1<<2)
or r16, r17
out PORTB, r16
Словами. Копируем состояние порта в r16. Копируем r19 в r17 чтобы не потерять r19 (можно не делать если значение r19 далее не потребуется). Зануляем нужный бит не трогая остальные. В r17 зануляем все биты кроме требуемого. Выполняем or между r16 и r17. состояние бита из r17 будет скопировано в r16. Отправляем состояние в порт.
Я уже подзабыл ассемблер AVR. Там есть возможность напрямую работать с битами регистров а также команды проверки-пропуска SBRC/SBRS.
sbrs r19, 2
rjump clear
sbi PORTB, 2
rjump next
clear:
cbi PORTB, 2
next:
Если бит 2 регистра r19 установлен то пропуск следующей интсрукции и на установка бита в PORTB с прыжком на метку next, иначе прыжок на метку clear
http://www.atmel.com/Images/doc1022.pdf