C翻译汇编语言,[求助]求人帮忙把汇编语言程序翻译成C或者C++

这篇博客内容涉及将一段用于获取CPU唯一标识符的汇编语言程序转换成C或C++代码。程序通过CPUID指令获取信息,并使用格式化字符串构建最终的CPU标识符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[求助]求人帮忙把汇编语言程序翻译成C或者C++

2009-6-17 14:32

8406

[求助]求人帮忙把汇编语言程序翻译成C或者C++

2009-6-17 14:32

8406

求人帮忙把汇编语言程序翻译成C或者C++,这个程序的功能是获取CPU的唯一标识符!

CString GetCpuId()//获取CPU唯一标识符

{

CString   CPUID;

unsigned   long   s1,s2;

unsigned   char   vendor_id[]="------------";

char   sel;

sel='1';

CString   VernderID;

CString   MyCpuID,CPUID1,CPUID2;

switch(sel)

{

case   '1':

__asm{

xor   eax,eax

cpuid

mov   dword   ptr   vendor_id,ebx

mov   dword   ptr   vendor_id[+4],edx

mov   dword   ptr   vendor_id[+8],ecx

}

VernderID.Format("%s-",vendor_id);

__asm{

mov   eax,01h

xor   edx,edx

cpuid

mov   s1,edx

mov   s2,eax

}

CPUID1.Format("%08X%08X",s1,s2);

__asm{

mov   eax,03h

xor   ecx,ecx

xor   edx,edx

cpuid

mov   s1,edx

mov   s2,ecx

}

CPUID2.Format("%08X%08X",s1,s2);

break;

case   '2':

{

__asm{

mov   ecx,119h

rdmsr

or   eax,00200000h

wrmsr

}

}

AfxMessageBox("CPU   id   is   disabled.");

break;

}

MyCpuID   =   CPUID1+CPUID2;

CPUID   =   MyCpuID;

return CPUID;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值