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