mikrocontroller.net

Forum: Compiler & IDEs GCC-Befehl für ...


Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe leute

wie lautet im GCC der Befehl für

ldi r16,0x08

?

Möchte einfach ein Arbeitsregister mit einem bestimmten Wert schreiben.

Danke!

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In "C" kann man nicht gezielt auf bestimmte Arbeitsregister schreiben.
Nur auf IO-Register, die in einem .H definiert sind.

Die internen uP Arbeitsregister ordnet der Compiler selbst zu.

Wenn man Variable definiert, kann man damit "rechnen".
Sind dies lokale Variable in einer Funktion, so werden die automatisch 
irgendwelchen Arbeitsregistern zugeordnet, belegen also kein Ram.
Sind es mehr lokale Variablen als "Arbeitsregister", welche dieser uP 
hat, so werden dann vom C-Compiler automatisch Ramwerte des Stacks 
eingesetzt.

Hängt auch mit Optimierungslevel zusammen.

Werte, die man "behalten" will, werden entweder durch eine Funktion 
zurückgegeben oder müssen auf einer globalen Variablen abgespeichert 
werden.


Autor: Christian G. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Stefan May (smay4finger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und welchen Sinn sollte ein asm("ldi r16,0x08") haben? Wenn der TP ein 
Variable in einem Register haben möchte, dann kann er den 
"register"-Modifier benutzen.

z.B.   register uint8_t var = 0x08;

Der Sinn erschließt sich mir trotzdem nicht.

mfg, Stefan.

Autor: johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nun der sinn wäre nun bei mir eine zählvariable, die ihren wert aus dem 
register 16 ( in diesem fall) bezieht.

aber ich habe es (siehe anderer Beitrag von mir) auch ohne das explizite 
BEschreiben eines Arbeitsregisters geschafft.

danke! :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.