Gast
#494283
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!
|
Anzeige
|
GCC-Befehl für ...
Gast
#494283
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!
Gast
#494288
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.
Gast
#494311
Gast
#494337
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.
Gast
#496201
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 schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|