p3以上的cpu就支持cpuid了,在delphi 中如何取出cpuid呢?
如题. 问题点数:100、回复次数:10Top
1 楼gardenyang(天高云淡)回复于 2003-10-03 12:53:37 得分 10
function GetCPUID: TCPUID; assembler; register;
asm
PUSH EBX {Save affected register}
PUSH EDI
MOV EDI,EAX {@Resukt}
MOV EAX,1
DW $A20F {CPUID Command}
STOSD {CPUID[1]}
MOV EAX,EBX
STOSD {CPUID[2]}
MOV EAX,ECX
STOSD {CPUID[3]}
MOV EAX,EDX
STOSD {CPUID[4]}
POP EDI {Restore registers}
POP EBX
end;
function GetCPUVendor: TCPUVendor; assembler; register;
asm
PUSH EBX {Save affected register}
PUSH EDI
MOV EDI,EAX {@Result (TVendor)}
MOV EAX,0
DW $A20F {CPUID Command}
MOV EAX,EBX
XCHG EBX,ECX {save ECX result}
MOV ECX,4
@1:
STOSB
SHR EAX,8
LOOP @1
MOV EAX,EDX
MOV ECX,4
@2:
STOSB
SHR EAX,8
LOOP @2
MOV EAX,EBX
MOV ECX,4
@3:
STOSB
SHR EAX,8
LOOP @3
POP EDI {Restore registers}
POP EBX
end;
Top
2 楼gardenyang(天高云淡)回复于 2003-10-03 12:54:21 得分 10
TCPUID = array[1..4] of Longint;
TCPUVendor = array[0..11] of Char;Top
3 楼tsj68(tsj)回复于 2003-10-03 13:15:05 得分 0
谢谢,这个我试了,但是如果cpu型号相同,不同的电脑则会得出一样的结果.我想知道如何得到每个cpu的唯一id.Top
4 楼jpyc(九品-沉默)回复于 2003-10-03 15:14:21 得分 25
看看这个:
http://218.56.11.178:8020/web/index.aspx
-》下载基地-》例程-硬件控制-》内存CPU硬盘检测
可能和上边的差不多。试试吧Top
5 楼pazee(耙子)(今年过年不收礼,收礼只收尿不湿)回复于 2003-10-03 15:19:41 得分 25
process number 因为隐私权的问题已近去掉了,只有PIII才有,而且大部分主板都把它屏蔽了。
Top
6 楼web700(*FS*的小狗腿子)回复于 2003-10-03 15:49:21 得分 5
高人太多Top
7 楼gardenyang(天高云淡)回复于 2003-10-03 20:29:16 得分 0
不会吧,这个程序我正在用,在不同的机器上面得出的cpu的id是不同的,把同一个cpu放在不同的机器上,得出的id是一样的,还需要什么唯一id呢?
这个本身就是全球唯一的id啊!Top
8 楼ehom(?!)回复于 2003-10-03 21:02:03 得分 20
那就完全是你理解错误了,CPUID是什么?它其实也是条指令,通过该指令返回CPU的各种相关信息而已,同一类型的CPU,它的描述信息自然也完全相同.
也没有必要通过
DW $A20F
去插入字去实现该指令,这是低版本Delphi中的做法,在D6中直接写CPUID完全没有问题.
如果是Intel的CPU,并且要取的是PSN的话,如Pazee所说,能取到PSN的只有在早期的P3配合早期的主版,而且用户没有主动关闭它的情况下才能实现,估计这个概率是非常非常的小的.
另外CPUID指令在486时代以后就有了,而不是P3以后才得到支持的.Top
9 楼gardenyang(天高云淡)回复于 2003-10-03 21:06:06 得分 5
不会吧,难道上面的那个算法的不到唯一的id吗?
好想我测试的时候还真的用的不是同一种cpu,当时我测试时忘了这个问题,就在intel 2.0上面和amd2400+上面测试,然后在intel1.8,2.0等上面测试,最后得出不同的id,然后就没在测试,想想好像还真的没有在不同的同一种cpu上面测试过!感谢搂住,上班之后我重新测试我的程序!Top
10 楼gardenyang(天高云淡)回复于 2003-10-03 21:09:02 得分 0
http://expert.csdn.net/Expert/topic/1905/1905459.xml?temp=.9408533Top



