zu 1.
Ja, das sieht mir ganz nach nem XOR aus.

Code:
in temp, port
eor temp, register
out port, temp
Das EOR ist die XOR Funktion ...

Dein zweites Problem könnte man wie folgt lösen:

Code:
 brcs carry_set
 cbi PORT, PIN
 rjmp exit
carry_set:
 sbi PORT, PIN
exit:
das SBI / CBI ändern greifen in dem Fall auf ein eizelnes Bit zu.

Grüße, da Hanni.