Gast
#421768
Ich versuche ein Assembler Programm mit einer Sprungtabelle als Assemblerprogramm in ein C Programm (AVR GCC 4.1.1) einzubinden. Im orginalen Programm in AVR Studio Assembler funktionierte das: subi ZL, low(-comp) sbci ZH, high(-comp) comp ist eine Sprungmarke ein paar Zeilen weiter unten in derselben Funktion. Das ganze habe ich schon an den GCC Assembler angepasst: subi ZL, lo8(-comp) sbci ZH, hi8(-comp) aber anscheinend kann das der Assembler nicht auswerten: tvgen.S:40: Error: can't resolve `L0' {*ABS* section} - `com {.text section} tvgen.S:40: Error: expression too complex tvgen.S:41: Error: can't resolve `L0' {*ABS* section} - `com' {.text section} tvgen.S:41: Error: expression too complex Ohne das - vor comp funktioniert das ganze (was aber eben ein falsches Ergebnis liefert). Als workaround könnte ich comp über ldi erst in Register laden und dann aufaddieren, aber wiso soll ich Rechenzeit und Register für Operationen verschwenden die schon zu Compilezeit feststehen ?