用C语言写一段 获取CPUID的代码
时间: 2023-02-08 21:58:09 浏览: 40
下面是在 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 的文档。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)