Inline Assembler AtmelStudio 6.1

Gast #3782140
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
Gast #3782149
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.
Gast #3785147
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.
#3785245
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren