Addition einer Konstanten beim AVR

OP #272941
Lesenswert?
• ▲
▼
Hallo,
ich hab da mal eine Frage.

Warum habe ich (scheinbar) beim AVR keinen Assembler-Befehl um zu einem
Register mit dem Wert x einen Konstate z.B 10 zu Addieren.
Bei der Subtraktion ist dies ja durchaus mit dem Befehl subi möglich.

Muss ich immer den 'Umweg' über z.B.
---------------
ldi temp, 10
add Wert, temp
---------------
nehmen oder hab ich nen Befehl übersehen?
Kenne den einen oder anderen Trick nicht?

Danke für die Hilfe :-)

Gruß Frank
Gast #272943
Lesenswert?
• ▲
▼
Wenn du es dir bequem machen willst,
kannst du dir auch einen Macro definieren:

.macro addi
    subi @0,-@1
.endmacro

Dann kannst du ganz "normal"
addi rxx,const schreiben.

z.B.
  addi r16,99
oder
  addi r18,'A

MfG Willi
Gast #272945
Lesenswert?
• ▲
▼
Das ganze hat natürlich den Nachteil, daß das Carry-Bit gesetzt wird,
wenn bei der ursprünglich gewünschten Addition gar kein Überlauf
aufgetreten wäre!! Eine Verzweigung aufgrund dieser Berechnung kann
dann schnell in die falsche Richtung gehen...

Tassilo

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