#include<stdio.h>
int main() {
unsigned int cpuid, eax, ebx, ecx, edx;
cpuid = 0x00000000;
__asm__ ("cpuid": "=a"(eax): "0"(cpuid));
__asm__ ("cpuid": "=b"(ebx): "0"(cpuid));
__asm__ ("cpuid": "=c"(ecx): "0"(cpuid));
__asm__ ("cpuid": "=d"(edx): "0"(cpuid));
printf("cpuid = 0x%x\n", cpuid);
printf("eax = 0x%x\n", eax);
printf("ebx = 0x%x\n", ebx);
printf("ecx = 0x%x\n", ecx);
printf("edx = 0x%x\n", edx);
printf("%c%c%c%c",ebx&0xff,(ebx>>8)&0xff,(ebx>>16)&0xff,(ebx>>24)&0xff);
printf("%c%c%c%c",edx&0xff,(edx>>8)&0xff,(edx>>16)&0xff,(edx>>24)&0xff);
printf("%c%c%c%c",ecx&0xff,(ecx>>8)&0xff,(ecx>>16)&0xff,(ecx>>24)&0xff);
printf("\n");
cpuid = 0x80000001;
__asm__ ("cpuid": "=a"(eax): "0"(cpuid));
__asm__ ("cpuid": "=b"(ebx): "0"(cpuid));
__asm__ ("cpuid": "=c"(ecx): "0"(cpuid));
__asm__ ("cpuid": "=d"(edx): "0"(cpuid));
printf("cpuid = 0x%x\n", cpuid);
printf("eax = 0x%x\n", eax);
printf("ebx = 0x%x\n", ebx);
printf("ecx = 0x%x\n", ecx);
printf("edx = 0x%x\n", edx);
cpuid = 0x80000002;
__asm__ ("cpuid": "=a"(eax): "0"(cpuid));
__asm__ ("cpuid": "=b"(ebx): "0"(cpuid));
__asm__ ("cpuid": "=c"(ecx): "0"(cpuid));
__asm__ ("cpuid": "=d"(edx): "0"(cpuid));
printf("%c%c%c%c",eax&0xff,(eax>>8)&0xff,(eax>>16)&0xff,(eax>>24)&0xff);
printf("%c%c%c%c",ebx&0xff,(ebx>>8)&0xff,(ebx>>16)&0xff,(ebx>>24)&0xff);
printf("%c%c%c%c",ecx&0xff,(ecx>>8)&0xff,(ecx>>16)&0xff,(ecx>>24)&0xff);
printf("%c%c%c%c",edx&0xff,(edx>>8)&0xff,(edx>>16)&0xff,(edx>>24)&0xff);
cpuid = 0x80000003;
__asm__ ("cpuid": "=a"(eax): "0"(cpuid));
__asm__ ("cpuid": "=b"(ebx): "0"(cpuid));
__asm__ ("cpuid": "=c"(ecx): "0"(cpuid));
__asm__ ("cpuid": "=d"(edx): "0"(cpuid));
printf("%c%c%c%c",eax&0xff,(eax>>8)&0xff,(eax>>16)&0xff,(eax>>24)&0xff);
printf("%c%c%c%c",ebx&0xff,(ebx>>8)&0xff,(ebx>>16)&0xff,(ebx>>24)&0xff);
printf("%c%c%c%c",ecx&0xff,(ecx>>8)&0xff,(ecx>>16)&0xff,(ecx>>24)&0xff);
printf("%c%c%c%c",edx&0xff,(edx>>8)&0xff,(edx>>16)&0xff,(edx>>24)&0xff);
cpuid = 0x80000004;
__asm__ ("cpuid": "=a"(eax): "0"(cpuid));
__asm__ ("cpuid": "=b"(ebx): "0"(cpuid));
__asm__ ("cpuid": "=c"(ecx): "0"(cpuid));
__asm__ ("cpuid": "=d"(edx): "0"(cpuid));
printf("%c%c%c%c",eax&0xff,(eax>>8)&0xff,(eax>>16)&0xff,(eax>>24)&0xff);
printf("%c%c%c%c",ebx&0xff,(ebx>>8)&0xff,(ebx>>16)&0xff,(ebx>>24)&0xff);
printf("%c%c%c%c",ecx&0xff,(ecx>>8)&0xff,(ecx>>16)&0xff,(ecx>>24)&0xff);
printf("%c%c%c%c",edx&0xff,(edx>>8)&0xff,(edx>>16)&0xff,(edx>>24)&0xff);
printf("\n");
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KCmludCBtYWluKCkgewogICB1bnNpZ25lZCBpbnQgY3B1aWQsIGVheCwgZWJ4LCBlY3gsIGVkeDsgCgogICBjcHVpZCA9IDB4MDAwMDAwMDA7CiAgIF9fYXNtX18gKCJjcHVpZCI6ICI9YSIoZWF4KTogIjAiKGNwdWlkKSk7CiAgIF9fYXNtX18gKCJjcHVpZCI6ICI9YiIoZWJ4KTogIjAiKGNwdWlkKSk7CiAgIF9fYXNtX18gKCJjcHVpZCI6ICI9YyIoZWN4KTogIjAiKGNwdWlkKSk7CiAgIF9fYXNtX18gKCJjcHVpZCI6ICI9ZCIoZWR4KTogIjAiKGNwdWlkKSk7CiAgIHByaW50ZigiY3B1aWQgPSAweCV4XG4iLCBjcHVpZCk7CiAgIHByaW50ZigiZWF4ID0gMHgleFxuIiwgZWF4KTsKICAgcHJpbnRmKCJlYnggPSAweCV4XG4iLCBlYngpOwogICBwcmludGYoImVjeCA9IDB4JXhcbiIsIGVjeCk7CiAgIHByaW50ZigiZWR4ID0gMHgleFxuIiwgZWR4KTsKICAgcHJpbnRmKCIlYyVjJWMlYyIsZWJ4JjB4ZmYsKGVieD4+OCkmMHhmZiwoZWJ4Pj4xNikmMHhmZiwoZWJ4Pj4yNCkmMHhmZik7CiAgIHByaW50ZigiJWMlYyVjJWMiLGVkeCYweGZmLChlZHg+PjgpJjB4ZmYsKGVkeD4+MTYpJjB4ZmYsKGVkeD4+MjQpJjB4ZmYpOwogICBwcmludGYoIiVjJWMlYyVjIixlY3gmMHhmZiwoZWN4Pj44KSYweGZmLChlY3g+PjE2KSYweGZmLChlY3g+PjI0KSYweGZmKTsKICAgcHJpbnRmKCJcbiIpOyAKICAgCiAgIGNwdWlkID0gMHg4MDAwMDAwMTsKICAgX19hc21fXyAoImNwdWlkIjogIj1hIihlYXgpOiAiMCIoY3B1aWQpKTsKICAgX19hc21fXyAoImNwdWlkIjogIj1iIihlYngpOiAiMCIoY3B1aWQpKTsKICAgX19hc21fXyAoImNwdWlkIjogIj1jIihlY3gpOiAiMCIoY3B1aWQpKTsKICAgX19hc21fXyAoImNwdWlkIjogIj1kIihlZHgpOiAiMCIoY3B1aWQpKTsKICAgcHJpbnRmKCJjcHVpZCA9IDB4JXhcbiIsIGNwdWlkKTsKICAgcHJpbnRmKCJlYXggPSAweCV4XG4iLCBlYXgpOwogICBwcmludGYoImVieCA9IDB4JXhcbiIsIGVieCk7CiAgIHByaW50ZigiZWN4ID0gMHgleFxuIiwgZWN4KTsKICAgcHJpbnRmKCJlZHggPSAweCV4XG4iLCBlZHgpOwogICAgCiAgY3B1aWQgPSAweDgwMDAwMDAyOwogICBfX2FzbV9fICgiY3B1aWQiOiAiPWEiKGVheCk6ICIwIihjcHVpZCkpOwogICBfX2FzbV9fICgiY3B1aWQiOiAiPWIiKGVieCk6ICIwIihjcHVpZCkpOwogICBfX2FzbV9fICgiY3B1aWQiOiAiPWMiKGVjeCk6ICIwIihjcHVpZCkpOwogICBfX2FzbV9fICgiY3B1aWQiOiAiPWQiKGVkeCk6ICIwIihjcHVpZCkpOwogICBwcmludGYoIiVjJWMlYyVjIixlYXgmMHhmZiwoZWF4Pj44KSYweGZmLChlYXg+PjE2KSYweGZmLChlYXg+PjI0KSYweGZmKTsKICAgcHJpbnRmKCIlYyVjJWMlYyIsZWJ4JjB4ZmYsKGVieD4+OCkmMHhmZiwoZWJ4Pj4xNikmMHhmZiwoZWJ4Pj4yNCkmMHhmZik7CiAgIHByaW50ZigiJWMlYyVjJWMiLGVjeCYweGZmLChlY3g+PjgpJjB4ZmYsKGVjeD4+MTYpJjB4ZmYsKGVjeD4+MjQpJjB4ZmYpOwogICBwcmludGYoIiVjJWMlYyVjIixlZHgmMHhmZiwoZWR4Pj44KSYweGZmLChlZHg+PjE2KSYweGZmLChlZHg+PjI0KSYweGZmKTsKICBjcHVpZCA9IDB4ODAwMDAwMDM7CiAgIF9fYXNtX18gKCJjcHVpZCI6ICI9YSIoZWF4KTogIjAiKGNwdWlkKSk7CiAgIF9fYXNtX18gKCJjcHVpZCI6ICI9YiIoZWJ4KTogIjAiKGNwdWlkKSk7CiAgIF9fYXNtX18gKCJjcHVpZCI6ICI9YyIoZWN4KTogIjAiKGNwdWlkKSk7CiAgIF9fYXNtX18gKCJjcHVpZCI6ICI9ZCIoZWR4KTogIjAiKGNwdWlkKSk7CiAgIHByaW50ZigiJWMlYyVjJWMiLGVheCYweGZmLChlYXg+PjgpJjB4ZmYsKGVheD4+MTYpJjB4ZmYsKGVheD4+MjQpJjB4ZmYpOwogICBwcmludGYoIiVjJWMlYyVjIixlYngmMHhmZiwoZWJ4Pj44KSYweGZmLChlYng+PjE2KSYweGZmLChlYng+PjI0KSYweGZmKTsKICAgcHJpbnRmKCIlYyVjJWMlYyIsZWN4JjB4ZmYsKGVjeD4+OCkmMHhmZiwoZWN4Pj4xNikmMHhmZiwoZWN4Pj4yNCkmMHhmZik7CiAgIHByaW50ZigiJWMlYyVjJWMiLGVkeCYweGZmLChlZHg+PjgpJjB4ZmYsKGVkeD4+MTYpJjB4ZmYsKGVkeD4+MjQpJjB4ZmYpOwogIGNwdWlkID0gMHg4MDAwMDAwNDsKICAgX19hc21fXyAoImNwdWlkIjogIj1hIihlYXgpOiAiMCIoY3B1aWQpKTsKICAgX19hc21fXyAoImNwdWlkIjogIj1iIihlYngpOiAiMCIoY3B1aWQpKTsKICAgX19hc21fXyAoImNwdWlkIjogIj1jIihlY3gpOiAiMCIoY3B1aWQpKTsKICAgX19hc21fXyAoImNwdWlkIjogIj1kIihlZHgpOiAiMCIoY3B1aWQpKTsKICAgcHJpbnRmKCIlYyVjJWMlYyIsZWF4JjB4ZmYsKGVheD4+OCkmMHhmZiwoZWF4Pj4xNikmMHhmZiwoZWF4Pj4yNCkmMHhmZik7CiAgIHByaW50ZigiJWMlYyVjJWMiLGVieCYweGZmLChlYng+PjgpJjB4ZmYsKGVieD4+MTYpJjB4ZmYsKGVieD4+MjQpJjB4ZmYpOwogICBwcmludGYoIiVjJWMlYyVjIixlY3gmMHhmZiwoZWN4Pj44KSYweGZmLChlY3g+PjE2KSYweGZmLChlY3g+PjI0KSYweGZmKTsKICAgcHJpbnRmKCIlYyVjJWMlYyIsZWR4JjB4ZmYsKGVkeD4+OCkmMHhmZiwoZWR4Pj4xNikmMHhmZiwoZWR4Pj4yNCkmMHhmZik7CgogICAgCiAgIHByaW50ZigiXG4iKTsgCiAgICAKICAgcmV0dXJuIDA7Cn0=