Eine Frage zur AVR 8-Bit Assemblersprache.
Beim Runden von Zahlen ist es manchmal ganz praktisch, auf eine Zahl nur
das Carry zu addieren. Man würde dafür naheliegenderweise einen Befehl
"add immediate with carry" nutzen, der 0 als Argument bekommt. Leider
scheint es einen solchen Befehl nicht zu geben?
Meine bisherigen Versuche:
1 | ; auf r16 das Carry addieren
|
2 | brcs 1f
|
3 | sec
|
4 | rjmp 2f
|
5 | 1: clc
|
6 | 2: sbci r16, 0
|
oder
1 | ; auf r16 das Carry addieren
|
2 | push r17
|
3 | clr r17
|
4 | adc r16, r17
|
5 | pop r17
|
oder
1 | ; auf r16 das Carry addieren
|
2 | brcc 1f
|
3 | sbci r16, 0xfe
|
4 | 1: ...
|
Gibt es auch eine Lösung mit einer Instruktion, die ich übersehen
habe?