Das war wie gesagt für GNU avr-Assembler (avr-as).
lo8() und hi8() bedeuten die unteren resp. oberen 8 Bit einer Konstanten.
hi8(500) = 1
lo8(500) = 244

Zum Schieben musst du auch über 2*8-Bit gehen, mit lsr, asr, ror für rechts und lsl und rol für links-Shift.

Die einzigen 16-Bit-Befehle die AVRs kennen sind movw, adiw, und sbiw, allerdings nur auf bestimmten Registern und Immediates in bestimmten Bereichen.

AVR Instruction Set (pdf)

Oder du nimmt eine Hochsprache wie C oder BASIC, da brauchst du dich um sowas und viele andere Sachen nicht mehr zu kümmern.