You are on page 1of 1

cpuid.

c 10/02/03 5:51

#include<stdio.h>

int main() {
unsigned int cpuid, result, physical_address_bits,
linear_address_bits;

cpuid = 0x80000008;

/* __asm__ ("pushl %%ebx \n\t" */


/* "pushl %%ecx \n\t" */
/* "pushl %%edx \n\t" */
/* "cpuid \n\t" */
/* "popl %%edx \n\t" */
/* "popl %%ecx \n\t" */
/* "popl %%ebx \n\t" */
/* : "=a"(result) */
/* : "0"(cpuid)); */

__asm__ ("nop" ::: "eax");

result &= 0x0000FFFF;


physical_address_bits = result & 0xFF;
linear_address_bits = result >> 8;

printf("result=0x%x\n", result);

printf("physical_address_bits=0x%x, (%d)\n",
physical_address_bits, physical_address_bits);

printf("linear_address_bits=0x%x, (%d)\n",
linear_address_bits, linear_address_bits);

return 0;
}

ページ 1/1

You might also like