aber wenn ich zu R16 R17 dazuaddiere, dann "sprenge" ich doch damit das Register, das Zielregister müsste größer als 8bit sein, oder warum nicht?
Scharf beobachtet

Und jetzt ?
Bei 8 Bit Registern darf man nur Zahlen zusammenrechnen die als Ergebnis höchstens 255 oder 11111111 betragen?
Zum Glück nicht, sonst wäre das ziemlich langweilig...
1. Möglichkeit:
Du mußt als Programmierer sicherstellen das das Ergebnis nicht größer als 255 wird.
2. Möglichkeit:
Man geht auf Nummer sicher und bereitet für das Ergebnis zwei Register!
Das geht etwa so:

R16 -> Zahl1 HIGH
R17 -> Zahl1 LOW
R18 -> Zahl2
R19 -> ein Hilfsregister
Damit hast Du für das Ergebnis 2 Register also insgesammt 16 Bit
Beim AVR gibt es noch sowas schönes wie Statusregister SREG dort gibt es wiederum ein Bit mit dem schönem namen Carry.
wenn Du jetzt z.B

add R16,R17 machst, wo R16 255 ist und R17 1 wird R16 "gesprengt" läuft also über...
er nimmt den Wert 0 an und Carrybit im SREG wird auf 1 gesetzt um Dir mitzuteilen, daß da was übergelaufen ist.
um das auszunutzen macht man es folgendermaßen:
add R17,R18 ;addiere R17 mit R18
ldi R19,0x00 ;lade 0 in R19
adc R16,R19 ;addiere R16,R19 UND den Carry dazu

jetzt sieht R16,R17 so aus: 00000001 00000000

wenn Dich das so genau interessiert, Suche mal im Forum nach dem Assembler Kurs für Anfänger, dort habe ich versucht das alles zu erklären.

Gruß Sebastian