subi mit negativer Konstante -> "falsches" Carry Bit

OP #4530579
Lesenswert?
• ▲
▼
Um auf dem AVR eine konstante Zahl zu addieren kann man ja einfach eine 
negative Zahl subtrahieren.
1
subi r16, -1
So weit so gut...
Wenn ich jedoch mit selbiger Methode eine Zahl zu 0 addiere wird immer 
das Carry Bit gesetzt.
1
ldi r16, 0
2
subi r16, -1
3
;"Falsches" Carry Bit im SREG
4
;Branches etc. funktionieren hier nicht wie gewollt
Mein Workaround:
1
ldi r16, 0
2
ldi r17, 1
3
add r16, r17
4
;Branches etc. funktionieren hier
Gibt es eine Methode außer ldi und add Anstelle von subi zu nutzen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren