#include <stdio.h>
int main(int argc, char * argv[])
{
unsigned int s1 = 0;
unsigned int s2 = 0;
asm volatile
(
"movl $0x01, %%eax; \n\t"
"xorl %%edx, %%edx; \n\t"
"cpuid; \n\t"
"movl %%edx, %0; \n\t"
"movl %%eax, %1; \n\t"
: "=m"(s1), "=m"(s2)
);
printf("%08X%08X", htonl(s2), htonl(s1));
return 0;
}