Forum: Mikrocontroller und Digitale Elektronik "inc 16Bit-Zahl"


von Sebastian Wille (Gast)


Lesenswert?

Hallo,

ich möchte eine 16Bit-Zahl um eins erhöhen. Gibt es da einen speziellen 
Befehl?

Ansonsten müsste ich immer prüfen, ob das Low-Byte 255 ist und wenn ja, 
dieses auf 0 setzen und das High-Byte um eins erhöhen. Ansonten eben nur 
das Low-Byte erhöhen.

Danke!

Sebastian

von Peter D. (peda)


Lesenswert?

Die 3 gebräuchlichen Varianten:

a)
adiw r24, 1


b)
subi r16, low(-1)
sbci r17, high(-1)


c)
inc r14
brne weiter
inc r15
weiter:


Peter

von crazy horse (Gast)


Lesenswert?

bei den oberen Registern(paaren) gibts den Befehl adiw, (Addiert 
Registerpaar+Konstante)
Ansonsten gehts auch so:

subi  r16, 0xff
sbci    r17, 0xff

von crazy horse (Gast)


Lesenswert?

ups, warste wieder mal schneller :-)

von Sebastian Wille (Gast)


Lesenswert?

Hi Peter,

ich hatte bisher die Variante c), die gut lief (wenn auch umständlich).

Mit "adiw ZL,1" geht's jedoch perfekt (und wesentlich platzsparender und 
eleganter!). Danke!!! :-)

Grüße,

   Sebastian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.