Ich möchte prüfen, ob die vorzeichenbehaftete Ganzzahl negativ ist. andi temp2,0b10000000 tst temp2 breq ZAHL_POSITIV brne ZAHL_NEGATIV Gibt es noch eine bessere Variante? Und jetzt soll der Betrag der negativen Ganzzahl gebildet werden com temp1 ' LOW com temp2 ' HIGH ldi temp3,1 clr temp4 add temp1, temp3 '+1 adc temp2, temp4 Ist dieses Verfahren zu umständlich, gibt es bessere? Danke Bernhard
> BRMI/BRPL
Stimmt, kann aber nur z.B. nach einer Subtraktion verwendet werden.
Ich hatte vergessen zu sagen, dass der Inhalt dieser Register an einer
ganz anderen Stelle geladen wird (TWI/USART).
... oder nach einem tst: tst temp2 brpl / brmi com temp1 ' LOW com temp2 ' HIGH inc temp1 breq a inc temp2 a:
oops com temp1 ' LOW com temp2 ' HIGH inc temp1 brne a 'überspringe den nächsten Befehl, wenn kein Übertrag (FF->00) inc temp2 a:
Ich hab's einfach mal in C geschrieben und geschaut, was der Compiler aus einem abs macht, und das scheint mir die kürzeste Variante zu sein:
1 | sbrs temp2,7 |
2 | rjmp .L2 |
3 | com temp2 |
4 | neg temp1 |
5 | sbci temp2,lo8(-1) |
6 | .L2: |
Danke für Eure guten Ideen, sie haben mir weiter geholfen. Gruß Bernhard
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.