inline asm beim gcc kompilieren. AT&T-Syntax??
-
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 statusAuch wenn ich die dritte zeile zum testen 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
-
du kannst in dem Assemblercode keine Bezeichner von Variablen des C Codes benutzen!
http://www-106.ibm.com/developerworks/linux/library/l-ia.html?dwzone=linux