gcc bzw. avr-as "undefined combination of operands"

Gast #179900
Lesenswert?
• ▲
▼
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
Gast #179901
Lesenswert?
• ▲
▼
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?
Gast #179902
Lesenswert?
• ▲
▼
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.
Gast #179904
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.