用C语言写一段 获取CPUID的代码
时间: 2023-02-08 10:58:09 浏览: 64
C语言获取CPU的ID号
4星 · 用户满意度95%
下面是在 C 语言中获取 CPUID 的代码示例:
```
#include <stdio.h>
#include <string.h>
#include <stdint.h>
#define CPUID_VENDOR_ID 0
#define CPUID_PROCESSOR_INFO 1
#define CPUID_CACHE_INFO 2
#define CPUID_SERIAL_NUMBER 3
#define CPUID_EXTENDED_FEATURES 0x80000000
#define CPUID_EXTENDED_PROCESSOR_INFO 0x80000001
#define CPUID_EXTENDED_CACHE_INFO 0x80000006
#define CPUID(op, a, b, c, d) asm volatile ("cpuid" : "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (op) : "memory")
int main(int argc, char *argv[]) {
uint32_t eax, ebx, ecx, edx;
char vendor_id[13] = {0};
CPUID(CPUID_VENDOR_ID, eax, ebx, ecx, edx);
memcpy(vendor_id + 0, &ebx, 4);
memcpy(vendor_id + 4, &edx, 4);
memcpy(vendor_id + 8, &ecx, 4);
printf("Vendor ID: %s\n", vendor_id);
return 0;
}
```
在这段代码中,使用了 CPUID 指令来获取 CPU 的厂商 ID。更多关于 CPUID 指令的信息,可以参考 Intel 或 AMD 的文档。
阅读全文