p3以上的cpu就支持cpuid了,在delphi 中如何取出cpuid呢?

tsj68 2003-10-03 12:14:44
如题.
...全文
187 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gardenyang 2003-10-03
  • 打赏
  • 举报
回复
TCPUID = array[1..4] of Longint;
TCPUVendor = array[0..11] of Char;
gardenyang 2003-10-03
  • 打赏
  • 举报
回复
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;
gardenyang 2003-10-03
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1905/1905459.xml?temp=.9408533
gardenyang 2003-10-03
  • 打赏
  • 举报
回复
不会吧,难道上面的那个算法的不到唯一的id吗?
好想我测试的时候还真的用的不是同一种cpu,当时我测试时忘了这个问题,就在intel 2.0上面和amd2400+上面测试,然后在intel1.8,2.0等上面测试,最后得出不同的id,然后就没在测试,想想好像还真的没有在不同的同一种cpu上面测试过!感谢搂住,上班之后我重新测试我的程序!
ehom 2003-10-03
  • 打赏
  • 举报
回复
那就完全是你理解错误了,CPUID是什么?它其实也是条指令,通过该指令返回CPU的各种相关信息而已,同一类型的CPU,它的描述信息自然也完全相同.

也没有必要通过
DW $A20F
去插入字去实现该指令,这是低版本Delphi中的做法,在D6中直接写CPUID完全没有问题.

如果是Intel的CPU,并且要取的是PSN的话,如Pazee所说,能取到PSN的只有在早期的P3配合早期的主版,而且用户没有主动关闭它的情况下才能实现,估计这个概率是非常非常的小的.

另外CPUID指令在486时代以后就有了,而不是P3以后才得到支持的.
gardenyang 2003-10-03
  • 打赏
  • 举报
回复
不会吧,这个程序我正在用,在不同的机器上面得出的cpu的id是不同的,把同一个cpu放在不同的机器上,得出的id是一样的,还需要什么唯一id呢?
这个本身就是全球唯一的id啊!
web700 2003-10-03
  • 打赏
  • 举报
回复
高人太多
耙子 2003-10-03
  • 打赏
  • 举报
回复
process number 因为隐私权的问题已近去掉了,只有PIII才有,而且大部分主板都把它屏蔽了。

jpyc 2003-10-03
  • 打赏
  • 举报
回复
看看这个:
http://218.56.11.178:8020/web/index.aspx

-》下载基地-》例程-硬件控制-》内存CPU硬盘检测

可能和上边的差不多。试试吧
tsj68 2003-10-03
  • 打赏
  • 举报
回复
谢谢,这个我试了,但是如果cpu型号相同,不同的电脑则会得出一样的结果.我想知道如何得到每个cpu的唯一id.

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧