日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cpu id 系列号代码

發(fā)布時間:2023/12/18 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cpu id 系列号代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1。先看看是那家公司的cpu,有intel的,還有amd的和 cyrix的。全世界只有三家,實際就是兩家。

先讓EAX=0,再調用CPUID ? ?
Inel的CPU將返回: ? ?
EBX:756E6547H ? 'Genu ' ? ?
EDX:49656E69H ? 'ineI ' ? ?
ECX:6C65746EH ? 'ntel ' ? ?
EBX,EDX,ECX將連成“GenuineIntel”,真正的Intel。

用CPUID指令,首先你可以確定你用的CPU是Intel的。?


Cyrix的CPU將返回: ? ?
EBX:43797269H ? ?
EDX:78496E73H ? ?
ECX:74656164H ? ?
“CyrixInstead”,“Cyrix來代替”。

? ?
AMD的CPU將返回: ? ?
EBX:41757468H ? ?
EDX:656E7469H ? ?
ECX:63414D44H ? ?
“AuthenticAMD ",可信的AMD。 ?


2.?? 得到系列號的高32位 和是否支持有系列號。
然后執(zhí)行:
MOV ? EAX,01H
CPUID
如果返回的EDX中,低18位為1,那么這個CPU就是支持序列號的。
此時EAX就是序列號的高32位。這32位對同一型號的CPU是一樣的。?


3. 得到系列好的低64位。
再執(zhí)行:
MOV ? EAX,03H
CPUID
此時的EDX:ECX就是序列號的第64位。


代碼如下:

#include <stdio.h>

#include <stdlib.h>
#include <string.h>
//#include <conio.h>


void main(void)
{
? ?? ?unsigned char vendor_id_0[100] = "\0";
?? ?unsigned char vendor_id_1[100] = "\0";
?? ?unsigned char vendor_id_2[40]= "\0";
?? ?unsigned char vendor_id_3[40]= "\0";
?? ?unsigned char vendor_id_4[40]= "\0";
?? ?unsigned char vendor_id_5[40]= "\0";
?? ?unsigned char vendor_id_6[40]= "\0";
?? ?unsigned int i_support_serial = 0;
?? ?unsigned int i_first_serial = 0;
?? ?unsigned int i_second_serial = 0;
?? ?unsigned int i_third_serial = 0;
#if 1
?? ?__asm
?? ?(
?? ??? ?"movl $0,%%eax\n\t"
?? ??? ?"cpuid\n\t"
?? ??? ?"movl %%ebx,%0\n\t"
?? ??? ?"movl %%edx,%1\n\t"
?? ??? ?"movl %%ecx,%2\n\t"
?? ??? ?
?? ??? ?"movl $1,%%eax\n\t"
?? ??? ?"movl $0,%%edx\n\t"
?? ??? ?"cpuid\n\t"
?? ??? ?"movl %%edx,%3\n\t"
?? ??? ?"movl %%eax,%4\n\t"

?? ??? ?"movl $3,%%eax\n\t"
?? ??? ?"cpuid\n\t"
?? ??? ?"movl %%edx,%5\n\t"
?? ??? ?"movl %%ecx,%6\n\t"

?? ??? ?:"=m"(vendor_id_0),"=m"(vendor_id_1),"=m"(vendor_id_2),"=m"(i_support_serial),"=m"(i_first_serial),"=m"(i_second_serial),"=m"(i_third_serial)

?? ?);
printf("id = %s,%s,%s,%x,%x,%x,%x\n",vendor_id_0,vendor_id_1,vendor_id_2,i_support_serial,i_first_serial,i_second_serial,i_third_serial);
? //i_support_serial? 低18位為1,那么這個CPU就是支持序列號的。
? //i_first_serial 同一型號的CPU的id號(共96位,最高的32位)
? //i_second_serial? 系列號的(次高的32位)
? //i_third_serial?? 系列號的(底32位)

?? ?

#endif
?? ?//printf("id = %s,%s\n",vendor_id_0,vendor_id_1);
}


總結

以上是生活随笔為你收集整理的cpu id 系列号代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。