Huch, so spät noch im Forum unterwegs
Naja, bin eigentlich was am machen aber zur Entspannung guckt man mal rein

Nun ja, das hast Du jetzt falsch verstanden PD0 ist kein Bit aus einem Register, sondern eine Konstante die mit
Code:
.equ PD0 = 0
Erzeugt/deklariert wird
in C würde das z.B. so aussehen
Code:
#define PD0 0
Dieses 0 bezieht sich hier auf die Bitnummer 0
wenn man sich so ein Byte mit Nummern aufschreibt sieht es so aus:
Code:
76543210
Wobei Bit Nummer 0 hat die Wertigkeit 1
Bit 1 2
Bit 2 4
Bit 3 8
Bit 4 16 usw.
Statt ldi r16,(1<<PD0) kannst Du auch ldi r16,1 schreiben das ist Wurst,
nur wenn Du z.B. irgendein Pin am PortD schalten willst ist es lesbarer

ldi r16,(1<<PD0)
out PORTD,r16

zu Schreiben

oder
ldi r16,(1<<PD0)|(1<<PD7)
statt
ldi r16,0x81

um PD0 und PD7 einzuschalten.

Klarer ?
Wenn nicht kannst Du nochmal fragen

Gruß Sebastian