fork download
  1. #include<stdio.h>
  2.  
  3. int main() {
  4. unsigned int cpuid, eax, ebx, ecx, edx;
  5.  
  6. cpuid = 0x00000000;
  7. __asm__ ("cpuid": "=a"(eax): "0"(cpuid));
  8. __asm__ ("cpuid": "=b"(ebx): "0"(cpuid));
  9. __asm__ ("cpuid": "=c"(ecx): "0"(cpuid));
  10. __asm__ ("cpuid": "=d"(edx): "0"(cpuid));
  11. printf("cpuid = 0x%x\n", cpuid);
  12. printf("eax = 0x%x\n", eax);
  13. printf("ebx = 0x%x\n", ebx);
  14. printf("ecx = 0x%x\n", ecx);
  15. printf("edx = 0x%x\n", edx);
  16. printf("%c%c%c%c",ebx&0xff,(ebx>>8)&0xff,(ebx>>16)&0xff,(ebx>>24)&0xff);
  17. printf("%c%c%c%c",edx&0xff,(edx>>8)&0xff,(edx>>16)&0xff,(edx>>24)&0xff);
  18. printf("%c%c%c%c",ecx&0xff,(ecx>>8)&0xff,(ecx>>16)&0xff,(ecx>>24)&0xff);
  19. printf("\n");
  20.  
  21. cpuid = 0x80000001;
  22. __asm__ ("cpuid": "=a"(eax): "0"(cpuid));
  23. __asm__ ("cpuid": "=b"(ebx): "0"(cpuid));
  24. __asm__ ("cpuid": "=c"(ecx): "0"(cpuid));
  25. __asm__ ("cpuid": "=d"(edx): "0"(cpuid));
  26. printf("cpuid = 0x%x\n", cpuid);
  27. printf("eax = 0x%x\n", eax);
  28. printf("ebx = 0x%x\n", ebx);
  29. printf("ecx = 0x%x\n", ecx);
  30. printf("edx = 0x%x\n", edx);
  31.  
  32. cpuid = 0x80000002;
  33. __asm__ ("cpuid": "=a"(eax): "0"(cpuid));
  34. __asm__ ("cpuid": "=b"(ebx): "0"(cpuid));
  35. __asm__ ("cpuid": "=c"(ecx): "0"(cpuid));
  36. __asm__ ("cpuid": "=d"(edx): "0"(cpuid));
  37. printf("%c%c%c%c",eax&0xff,(eax>>8)&0xff,(eax>>16)&0xff,(eax>>24)&0xff);
  38. printf("%c%c%c%c",ebx&0xff,(ebx>>8)&0xff,(ebx>>16)&0xff,(ebx>>24)&0xff);
  39. printf("%c%c%c%c",ecx&0xff,(ecx>>8)&0xff,(ecx>>16)&0xff,(ecx>>24)&0xff);
  40. printf("%c%c%c%c",edx&0xff,(edx>>8)&0xff,(edx>>16)&0xff,(edx>>24)&0xff);
  41. cpuid = 0x80000003;
  42. __asm__ ("cpuid": "=a"(eax): "0"(cpuid));
  43. __asm__ ("cpuid": "=b"(ebx): "0"(cpuid));
  44. __asm__ ("cpuid": "=c"(ecx): "0"(cpuid));
  45. __asm__ ("cpuid": "=d"(edx): "0"(cpuid));
  46. printf("%c%c%c%c",eax&0xff,(eax>>8)&0xff,(eax>>16)&0xff,(eax>>24)&0xff);
  47. printf("%c%c%c%c",ebx&0xff,(ebx>>8)&0xff,(ebx>>16)&0xff,(ebx>>24)&0xff);
  48. printf("%c%c%c%c",ecx&0xff,(ecx>>8)&0xff,(ecx>>16)&0xff,(ecx>>24)&0xff);
  49. printf("%c%c%c%c",edx&0xff,(edx>>8)&0xff,(edx>>16)&0xff,(edx>>24)&0xff);
  50. cpuid = 0x80000004;
  51. __asm__ ("cpuid": "=a"(eax): "0"(cpuid));
  52. __asm__ ("cpuid": "=b"(ebx): "0"(cpuid));
  53. __asm__ ("cpuid": "=c"(ecx): "0"(cpuid));
  54. __asm__ ("cpuid": "=d"(edx): "0"(cpuid));
  55. printf("%c%c%c%c",eax&0xff,(eax>>8)&0xff,(eax>>16)&0xff,(eax>>24)&0xff);
  56. printf("%c%c%c%c",ebx&0xff,(ebx>>8)&0xff,(ebx>>16)&0xff,(ebx>>24)&0xff);
  57. printf("%c%c%c%c",ecx&0xff,(ecx>>8)&0xff,(ecx>>16)&0xff,(ecx>>24)&0xff);
  58. printf("%c%c%c%c",edx&0xff,(edx>>8)&0xff,(edx>>16)&0xff,(edx>>24)&0xff);
  59.  
  60.  
  61. printf("\n");
  62.  
  63. return 0;
  64. }
Success #stdin #stdout 0s 4532KB
stdin
Standard input is empty
stdout
cpuid = 0x0
eax = 0xd
ebx = 0x756e6547
ecx = 0x0
edx = 0x0
Genu
cpuid = 0x80000001
eax = 0xd
ebx = 0x756e6547
ecx = 0x0
edx = 0x49656e69
eineI
nteleineI