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?