一 :WINDOWS下,用VC++来编译。
格式: unsigned long DBase;
char cA[13];
char cB[49];
_asm
{
xor eax, eax
cpuid
mov DBase ,eax
mov dword ptr cA ,ebx
mov dword ptr cA+4 ,edx
mov dword ptr cA+8 ,ecx
mov eax, 0x80000002
cpuid
mov dword ptr cB , eax
mov dword ptr cB + 4 , ebx
mov dword ptr cB + 8 , ecx
mov dword ptr cB + 12 ,edx
mov eax, 0x80000003
cpuid
mov dword ptr cB + 16 , eax
mov dword ptr cB + 20 , ebx
mov dword ptr cB + 24 , ecx
mov dword ptr cB + 28 , edx
mov eax, 0x80000004
cpuid
mov dword ptr cB + 32 , eax
mov dword ptr cB + 36 , ebx
mov dword ptr cB + 40 , ecx
mov dword ptr cB + 44 , edx
}
二:DOS下,需要用DJGPP来编译(支持32位)。
格式:
#define CPUID(op,a,b,c,d)
__asm__ __volatile__("cpuid":"=a"(a),"=b"(b),"=c"(c),"=d"(d):"a"(op))
MSN: twinliwu@hotmail.com