asm volatile ("ldi R30,low(Sprungtabelle)"::); asm volatile ("ldi R31,high(Sprungtabelle)"::); Fehlermelung: C:\...\ccQVaaaa.s:1673: Error: garbage at end of line ich habe dies alles in Assembler programmiert und compaliert, da funktioniert das ohne Probleme, jetzt wollt ich den Code in C transportieren und dann krieg ich diese Fehlermeldung... Was mach ich falsch? kann ich aus C auf ne Assemlberfunktion zugreifen?!
Hallo Garbage at end of line heisst es so praktisch immer, wenn einfach etwas nicht funktioniert. Konkret vermute ich mal, dass deine Funktionen low(...) und high(...) nicht funktionieren. Versuche es mal mit lo8(...) und hi8(...). Gruss Michael
Hallo, zu früh gefreut... ich wollte den Zeiger Z R30 (low) R31 (high) auf das Label Sprungtabelle zeigen lassen, wenn ich asm volatile ("ldi R30,lo8(Sprungtabelle)"::); asm volatile ("ldi R31,hi8(Sprungtabelle)"::); ausführe, dann zeigt der Pointer irgendwo hin, aber nicht auf die Sprungtabelle :-( ich hab das mit ldi R30,low(Sprungtabelle) ldi R31,high(Sprungtabelle) in Assembler probiert und da funktioniert die Zuweisung hat wer noch ein tipp für mich?
Warum machst du diese Anweisungen noch in Assembler? Das geht doch auch recht problemlos in C. MW
Wo genau ist denn "irgendwo"? Wenn da ein Faktor 2 falsch ist, dann ist das wieder die alte Geschichte, daß die Adresse in 16-Bit-Worten angegeben wurde, im Z-Register aber in Bytes stehen muß. Könnte es das sein?
@ Mciahel Wilhelm: der Assembler-Code sind etwa 600 Zeilen, aber diese beiden Funktionieren nicht @ Philipp: also er sollte auf 0x057A zeigen aber zeigt auf 0x0AF4 da ist der Faktor 2 dazwischen...
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.