.. ich versuche mich mal am Assembler Teil: ..
Danke für Deine Mühe, das hilft mir schon mal etwas weiter. Die eigentlichen Assemblerbefehle hatte ich schon aus dem Studio4 rausgelesen; die hatte ich zwar nicht parat, aber in meinen AVR-Anfangszeiten hatte ich wenige, einfache Aufgaben (z.B. Servotester mit Potiabfrage etc) in Assembler programmiert. Daher sagten mir zB sbiw oder brne schon etwas. (Es gibt auch noch Rudimente zu 8086- oder Z80-Assembler . . . aus der Studienzeit).

Code:
;Auszug aus Servotester; beispielhaft
  mc_init:    ;=== Initialisiere Mikrocontroller
              ; PB0 (servo1) + PB3 (servo2) = Ausgang, PB4 (poti1) = ADC-Eingang
    ldi    r16,0b00001000    ;Ausgang (1) auf PB3, Eingang (0) auf PB4
    out    ddrb,r16          ;Datenrichtungsbits setzen, Port ist Ausgang
    ldi    r16,0b11100111    ;Datenrichtungsbits setzen
    out    portb,r16         ;  und initialisieren
    ret                     ;=====----->>>>>
Unverständlich sind mir noch Zahlendarstellung dieser Art : rjmp .+8 , brne .-4 , brne .-12.

Ebenso unverständlich ist mir noch der Zusammenhang zwischen Assemblercode und Kommentar wie hier :
........rjmp .+8 ; 0x40 <__SREG__+0x1>
........brne .-4 ; 0x3a <__CCP__+0x6>
........brne .-12 ; 0x38 <__CCP__+0x4>

SREG hatte ich in der Studio4-Assemblerhilfe gefunden, ist klar. CCP dagegen gibts weder im Instruction Set Summary der Controllerdokumentation noch in der Studio4-Hilfe.

Lücken über Lücken - auch die Zeilen
........sbiw %0,1
........\n\t
........brne 1b
........: "=w" (__c) : "0" (__c)
sind geheimnisvoll.

Ich sehe, dass ich sehr umfassende Wissenslücken zu Assembler habe. Daher sollte ich die Titelfrage ändern in: Wo kann man diese Fragen - und alle sonstigen Feinheiten - zu Assembler lernen? Buch? (www-)Tutorial? oder . . .

Danke für die Aufmerksamkeit