inline asm beim gcc kompilieren. AT&T-Syntax??

Gast #56052
Lesenswert?
• ▲
▼
hey,

will follgenden code mit dem gcc kompilieren.

int main () {
unsigned int cyc;
    __asm (
   "CPUID;"
   "RDTSC;"
   "movl %eax, cyc;"
   );

 return 1;
}


Der gcc benutzt doch AT&T-Syntax oder?
Trotzdem bekomme ich beim kompilieren follgenden fehler:

/tmp/ccK8Qt3I.o(.text+0x15): In function `main':
: undefined reference to `cyc'
collect2: ld returned 1 exit status

Auch wenn ich die dritte zeile folgendermaßen ändere:

"movl %eax, $5;"

kommt beim kompilieren diese für mich unverständliche fehlermeldung:

/tmp/ccYE7xDK.s: Assembler messages:
/tmp/ccYE7xDK.s:13: Error: suffix or operands invalid for `mov'

warum sagt er "mov" wenn ich die AT&T-Syntax benutze und bei mir
"movl" steht.
Glaube mit der Intel Syntax klappt das kompilieren auch nicht.



bitte helft mir, bin voll am verzweifeln.
danke
kinek

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.