inline void cpuid(
unsigned int op,
unsigned int *eax,
unsigned int *ebx,
unsigned int *ecx,
unsigned int *edx)
{
__asm__("cpuid"
: "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx)
: "a" (op)
: "cc");
}
int main(void)
{
unsigned int eax,ebx,ecx,edx;
unsigned int i=0;
char array[17];
char *cp=array;
cpuid(0x8fffffff, &eax,&ebx,&ecx,&edx);
for (i = 0; i < 4; i++)
*cp++ = eax >> (8 * i);
for (i = 0; i < 4; i++)
*cp++ = ebx >> (8 * i);
for (i = 0; i < 4; i++)
*cp++ = ecx >> (8 * i);
for (i = 0; i < 4; i++)
*cp++ = edx >> (8 * i);
*cp = 0;
printf ("%s\n", array);
}
在 AMD64 編譯以上程式並執行後,會得到這個輸出:原來 CPU 也會有彩蛋 @@"
由 風痕影 發表於 July 9, 2007 02:36 AM