CPUID指令簡單呼叫

2021-09-07 08:11:18 字數 820 閱讀 6003

關於cpuid指令,可以看維基百科的相關介紹

在windows下可以呼叫__cpuid__cpuidex這兩個函式,__cpuid函式在vs2005中就已經開始支援了。

下面是簡單的呼叫**,在windows下vs不支援x64專案嵌入asm,所以只能編譯32位版本。

#include#include// gcc cpuid.c -o cpuid

// cl /dwin32=1 cpuid.c

static void cpuinfo(unsigned int cpuinfo[4], unsigned int fn_id)

#elif defined(__gnuc__)

__asm__ ("cpuid"

:"=a"(deax),

"=b"(debx),

"=c"(decx),

"=d"(dedx)

:"a"(fn_id));

#endif

cpuinfo[0]=deax;

cpuinfo[1]=debx;

cpuinfo[2]=dedx;

cpuinfo[3]=decx;

}int main(int argc,char** argv)

unsigned int cpu[4];

cpuinfo(cpu,fn_id);

printf("%08x-%08x-%08x-%08x\n",cpu[0],cpu[1],cpu[2],cpu[3]);

return 0;

}

C語言呼叫Intel處理器CPUID指令的例項

在linux環境下,使用c語言內嵌彙編的手段使用cpuid指令,進而在高階語言層面上看到獲取的資訊。實現檔案cpuid.c 如下 struct cpuid result generic cpuid function static inline struct cpuid result cpuid un...

反射簡單呼叫

1 class program 2 構造函式呼叫有參建構函式 16object obj constructor.invoke new object 17 methodinfo method1 type.getmethod sayname 得到無參公有方法 18 methodinfo method2 ...

通過cpuid指令獲取CPU Verdor ID

cpuid.s program to extract the processor vendor id how to complie and run as o cpuid.o cpuid.s ld o cpuid cpuid.o section data output ascii the proces...