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
#272942
subi -10 geht, steht z.B. im Trampert-Buch
Gast
#272943
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
#272944
im zweiten Beispiel soll es natürlich addi r18,'A' heissen. Mfg Willi
Gast
#272945
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.