DOS下和WINDOWS下用CPUID读CPU信息

作者:袖梨 2022-07-02

一 :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:   [email protected]

        

相关文章

精彩推荐