RES
RES
Weet iemand hoe je zo kort mogelijk -1 (DEC) doet van een 24 bit getal in AVR ASM?
subi WL, low(1)
sbci WM, high(1)
sbci WH, low(1)?
die laatste low is verkeerd, dat zou eigenlijk de 3e byte van 1 moeten zijn (daar is ook een macro voor dacht ik maar weet ik zo even niet uit m'n hoofd). Maar bij 1 zijn alle bytes behalve de least significant toch 0, dus je kunt gewoon sbci W*, 0 doen voor de laatste 2.
Sneller kan ik ook niet bedenken, er is nog een sbiw die op 16-bits werkt maar dat werkt dan alleen als je getal in X, Y of Z zit.
RES
RES
Het kan gewoon zo kwam ik achter.
subi WL, low(1)
sbci WM, high(1)
sbci WH, byte3(1)
Er is ook nog een byte4() functie.