为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

获取CPU信息

2013-01-07 3页 doc 22KB 27阅读

用户头像

is_342253

暂无简介

举报
获取CPU信息获取CPU信息 耐心看看啊,运行通过啦,希望对你有帮助啊! #include unsigned int veax; unsigned int vebx; unsigned int vedx; unsigned int vecx; //执行CPUID指令 void cpuid(unsigned int veax1) { _asm{ mov eax,veax1 cpuid mov veax,eax ...
获取CPU信息
获取CPU信息 耐心看看啊,运行通过啦,希望对你有帮助啊! #include unsigned int veax; unsigned int vebx; unsigned int vedx; unsigned int vecx; //执行CPUID指令 void cpuid(unsigned int veax1) { _asm{ mov eax,veax1 cpuid mov veax,eax mov vebx,ebx mov vecx,ecx mov vedx,edx } } //做移位操作,把寄存器中的ASCII码,以字符形式输出 void LeftMove(unsigned int var) { printf("%c",var); for(int i=0;i<3;i++) { var=(var>>; printf("%c",var); } } //做移位操作,把寄存器中的值以“%d”形式输出 void LM(unsigned int var) { printf("%d",var); for(int i=0;i<3;i++) { var=(var>>; printf("%d",var); } } //得到CPU的生产厂商(当EAX值为0时),依次存放在EBX,EDX,ECX中 void getCpuName() { cpuid(0); LeftMove(vebx); LeftMove(vedx); LeftMove(vecx); printf("\n"; } //得到CPU的商标,当EAX中的值为0x80000003和0x80000004时分别返回16个字符,组成商标 //依次存放在EAX,EBX,ECX,EDX中 void getCpuBrand() { for(int j=0;j<2;j++) { cpuid(0x80000003+j); LeftMove(veax); LeftMove(vebx); LeftMove(vecx); LeftMove(vedx); } printf("\n"; } //获得CPU的特性,参数是eax = 1,返回值放在edx和ecx,通过验证edx或者ecx的某一个bit, //可以获得CPU的一个特性是否被支持。比如说,edx的bit 32代表是否支持MMX, //edx的bit 28代表是否支持Hyper-Threading,ecx的bit 7代表是否支持speed sted。 void getCpuFeature() {//由于特性太多,无法一一编写,需要的时候再写,方法是一样的。 } //获得CPU序列号,获得序列号需要两个步骤,首先用eax = 1做参数,返回的eax中存储序列号的高两个WORD。 //用eax = 3做参数,返回ecx和edx按从低位到高位的顺序存储前4个WORD。 void getCpuSeris() { cpuid(1); LM(veax); cpuid(3); LM(vecx); LM(vedx); printf("\n"; } void main() { getCpuName(); getCpuBrand(); getCpuSeris(); }
/
本文档为【获取CPU信息】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索