Mit inlineasm MOMCPUNAME in char schreiben
-
nung gibts weniger Fehler:
__asm ("xor %eax, %eax\n" "cpuid\n" "mov dword ptr vendor_string[0], %ebx\n" "mov dword ptr vendor_string[4], %edx\n" "mov dword ptr vendor_string[8], %ecx");
Fehler:
C:\DOKUME~1\blub\LOKALE~1\Temp/cc21aaaa.s:4351: Error: junk `ptr vendor_string[0]' after expression C:\DOKUME~1\blub\LOKALE~1\Temp/cc21aaaa.s:4352: Error: junk `ptr vendor_string[4]' after expression C:\DOKUME~1\blub\LOKALE~1\Temp/cc21aaaa.s:4353: Error: junk `ptr vendor_string[8]' after expression
-
weiß ja net obs zur allgemeinen Klärung beiträgt, habe mit ASM-Direktiven in C++ äußerst wenig zu tun aber das gibt die F.A.Q. her:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-41479.html
-
Checker&Murckser schrieb:
weiß ja net obs zur allgemeinen Klärung beiträgt, habe mit ASM-Direktiven in C++ äußerst wenig zu tun aber das gibt die F.A.Q. her:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-41479.html
Tut mir leid aber ich rall trotzdem nicht, wie ich mit dem "dword ptr vendor_string[0]" umgehen soll.
Normalerweise müsste ich ja ein _ vor die var setzen.
aer setzt geht das so nict.
scheinbar wegen dem dword ptr und zu sowas hab ich noch kein beispiel gefunden.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
*push*
kann keiner helfen?!?
-
Klar, schau dir die Links in dem verwiesenen FAQ-Eintrag an. Dort wird dir erklärt, wie du den GCC Inline-Assembler benutzen musst. So wie du es machst ist es fundamental falsch.
-
rüdiger schrieb:
Klar, schau dir die Links in dem verwiesenen FAQ-Eintrag an. Dort wird dir erklärt, wie du den GCC Inline-Assembler benutzen musst. So wie du es machst ist es fundamental falsch.
Die meisten sind für linux oder down.
und in den wenigen anderen steht auch nicht, wie ich mit diesem dword ptr umgehe.
-
ob linux oder windows macht ja keinen Unterschied.
-
cpu: opteroN 144
__asm__ __volatile__ ( "cpuid;" : "=a" (vendor_string[0]), "=b" (vendor_string[4]), "=c" (vendor_string[8]));
ausgabe: q
__asm__ __volatile__ ( "cpuid;" : "=b" (vendor_string[0]), "=c" (vendor_string[4]), "=d" (vendor_string[8]));
ausgabe:
__asm__ __volatile__ ( "xor %%eax, %%eax;" "cpuid;" : "=a" (vendor_string[0]), "=b" (vendor_string[4]), "=c" (vendor_string[8]));
ausgabe: ■
__asm__ __volatile__ ( "xor %%eax, %%eax;" "cpuid;" : "=b" (vendor_string[0]), "=c" (vendor_string[4]), "=d" (vendor_string[8]));
ausgabe: A
-
*push*
Bitte helft mal es funzt doch schon fast.
-
wo muss das dword hin?
-
*push*
-
*push* -.-