Hallo, ich habe in der Assembler-Datei folgende Zeile eingegeben: st X+, R27 und erhalte immer den oben genannten Fehler. Zum Testen habe ich es dann folgendermassen in der C-Datei gemacht: asm("st X+, R27"); Selbe Ergebnis. Hiermit st X, R27 bzw. asm("st X, R27"); oder st X+, R2 bzw. asm("st X+, R2"); geht es auch ohne weiteres. Laut Doku sollte es aber auch mit R27 gehen. Weiss jemand warum nicht. Danke Andreas
Doku: The result of these combinations is undefined: ST X+, r26 ST X+, r27 ST -X, r26 ST -X, r27 Weil: X ist nichts anderes als R27:R26. Wird also R27 vor oder nach dem inkrementieren gespeichert?
Stimmt, mit ein bischen Nachdenken hätte ich selber darauf kommen müssen Danke Aber wo in der Doku hast Du das gelesen? Im Assembler-Manual stand es nicht drin. Will mir jetzt ersparen sämtliche Doku zu durchsuchen.
Was nur zeigt, das GAS dem Programmierer unter die Arme greift, der Atmel Assembler hingegen nach dem "Motto Mist rein Mist" raus agiert. Es ist ja eben "undefined", aber durchaus codierbar. Aber was dabei zur Laufzeit rauskommt mag sich von Version zu Version unterscheiden. Es steht in der Instruction Set Reference, DOC0856. Unter ebendiesem ST Befehl.
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.