首页
社区
课程
招聘
6
请问这里是不是在取cpu的id?
发表于: 2004-5-3 18:42 5999

请问这里是不是在取cpu的id?

2004-5-3 18:42
5999
请问这里是不是在取cpu的id?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
loc_100C7730:               ; CODE XREF:
        push    ebp
        mov ebp, esp
        sub esp, 8
        push    ebx
        push    esi
        push    edi
        mov dword ptr [ebp-8], 0
        mov dword ptr [ebp-4], 0
        call    sub_100022BB ;这里看能不能使用cpuid
        and eax, 0FFFFh  ;指令
        test    eax, eax
        jz  short loc_100C775D
        xor eax, eax
        inc eax
        cpuid
        mov [ebp-4], edx ;取回cpu特征字
                                             ;如果cpu支持id
                                             ;则取回其高32位
loc_100C775D:              
        mov eax, [ebp-4]
        pop edi
        pop esi
        pop ebx
        mov esp, ebp
        pop ebp
        retn
; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
loc_100C76B0:               ; CODE XREF:
        push    ebp
        mov ebp, esp
        push    ecx
        push    ebx
        push    esi
        push    edi
        xor eax, eax
        inc eax
        shl eax, 1
        shl eax, 1
        inc eax
        shl eax, 1
        shl eax, 1
        inc eax
        pushf
        pushf
        mov ecx, eax
        xor eax, eax
        inc eax
        shl eax, cl
        mov edx, eax
        pop eax
        push    eax
        xor eax, edx
        push    eax
        mov eax, edx
        inc eax
        mov edx, eax
        popf
        mov ebx, ecx
        mov eax, ecx
        inc eax
        mov ecx, eax
        mov eax, edx
        shl eax, cl
        mov edx, eax
        pushf
        sub eax, ebx
        mov edx, eax
        pop eax
        pop ebx
        xor eax, ebx
        jnz short loc_100C76FB
        mov dword ptr [ebp-4], 0
        jmp short loc_100C7702
; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪
 
loc_100C76FB:               ; CODE
        mov dword ptr [ebp-4], 1
 
loc_100C7702:               ; CODE
        popf
        mov ax, [ebp-4]
        pop edi
        pop esi
        pop ebx
        mov esp, ebp
        pop ebp
        retn

看来还不是取cpuid,因为并不是所有的cpu都支持。这里只是取能返回的一部分信息。附了一篇cpuid指令的资料,见下面的回复。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 6
支持
分享
赞赏记录
参与人
雪币
留言
时间
一路南寻
为你点赞~
2024-4-3 00:13
東陽不列山
为你点赞~
2024-2-26 00:22
PLEBFE
为你点赞~
2024-2-9 04:59
嫉妒的死远点
为你点赞~
2024-1-20 00:07
QinBeast
为你点赞~
2023-3-19 01:10
shinratensei
为你点赞~
2023-3-19 01:07
最新回复 (1)
雪    币: 279
活跃值: (435)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
2
已经找到答案。
附上一篇关于cpuid的文章,希望对要了解cpuid的人有帮助。
2004-5-6 15:01
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册