c语言显示cpuid_C语言调用Intel处理器CPUID指令的实例

structcpuid_result {

uint32_t eax;

uint32_t ebx;

uint32_t ecx;

uint32_t edx;

};/** Generic CPUID function*/

static inline struct cpuid_result cpuid(unsigned intop)

{structcpuid_result result;

__asmvolatile("mov %%ebx, %%edi;"

"cpuid;"

"mov %%ebx, %%esi;"

"mov %%edi, %%ebx;":"=a"(result.eax),"=S"(result.ebx),"=c"(result.ecx),"=d"(result.edx)

:"0"(op)

:"edi");returnresult;

}static inline unsigned int cpuid_eax(unsigned intop)

{//unsigned int eax, ebx, ecx, edx;

structcpuid_result regs;

regs=cpuid(op);returnregs.eax;

}void get_cpu_vendor(char* cpu_vendor, unsigned int*cpuid_level)

{

unsignedint cpuid_op = 0x00000000;char vendor_name[16] = {'\0'};st

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值