Forum: Mikrocontroller und Digitale Elektronik Inline Assembler AtmelStudio 6.1


von Chrisi (Gast)


Lesenswert?

Guten Tag.

Ich habe eine Frage zum Inline Assembler im ATMEL Studio 6.1
Ich habe ein Problem mit der richtigen Syntax.

Ich habe einen bereits vorhandenen Inline Assembler Code aus dem 
Codevision erstellt. Ich möchte nun das Ganz im ATMEL Studio 6.1 
importieren. Und hier funktioniert der im Codevision erstellte Assembler 
Code natürlich nicht mehr.

Ich möchte zunächst nur die folgende Zeile für den Gnu Compiler 
verständlich machen:

void funktion(void)
{
 #asm
   .def temp0 = r24 ; ich weise dem Register den Namen temp0 zu
 #endasm
}

Wie muss die Syntax für den Gnu Compiler aussehen?
Könnt ihr mir helfen?

Danke schon mal im Voraus

von Peter II (Gast)


Lesenswert?

Chrisi schrieb:
> Wie muss die Syntax für den Gnu Compiler aussehen?
> Könnt ihr mir helfen?

nein, dann diese Anweisung macht keinen Sinn für den ASM. Bei GCC muss 
man nicht zwingend die Register angeben, diese legt der Compiler später 
fest.

Meist darfst du sogar überhaupt nicht einfach ein Register verwenden, 
denn der Compiler hat einige Register für Spezielle Inhalte reserviert.

1:1 wirst du es also nicht übernehmen können.

von Chrisi (Gast)


Lesenswert?

Ich weiß ja dass diverse Register für bestimmte Aufgaben reserviert 
sind. Und daher verwende ich ein zulässiges Arbeitsregister. Und da ich 
dem Compiler es nicht überlassen möchte welches Register er verwendet, 
möchte ich diese mit meiner Definition festlegen. Denn dann weiß ich 
ohne großen Aufwand wo ich mich befinde.

Nur weiß ich nicht buw. bekomme ich es nicht heraus, wie ich die oben 
geschriebene Definition dem Gnu Compiler beibringen kann.

von Bernhard F. (bernhard_fr)


Lesenswert?

Mal eine andere Frage:
Geht es grundlegend darum, Assembler zum laufen zu bekommen?

Wenn es dir nur darum geht komfortabel auf dieses Register zuzugreifen 
würde ich dir sonst
1
#define temp0 _SFR_MEM8(24)  // register 24 direkt ansprechen
empfehlen.

Und nur so interessehalber: Warum willst du es nicht dem Compiler 
überlassen?

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
Noch kein Account? Hier anmelden.