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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.