CPUID得到的数据会变化?

jamesking 2006-11-21 06:28:20
我的软件里用到了CPUID生成序列号,可是最近有用户反应,他的序列号不断的变化,我给的注册码没法用。
我以前在Intel和AMD的单核处理器上测试过是不会变化的。但他的电脑是至强处理器。
我想问一下,在至强处理器或双核处理器上用CPUID指令是否会变化?
下面是我的代码:
push ebx
push ecx
push edx
mov eax, 1
cpuid
mov IDAX, eax
mov IDBX, ebx
mov IDCX, ecx
mov IDDX, edx
pop edx
pop ecx
pop ebx

请问我取到的IDAX、IDBX、IDCX、IDDX会发生变化吗?
...全文
723 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Qinlove 2006-11-28
  • 打赏
  • 举报
回复
估计是双核的问题导致的。我也遇到了类似的问题,用RDTSC反复读CPU计数器,在双核CPU上,一会儿读出来的是这个核的,一会儿又是那个核的,不知道怎么控制
  • 打赏
  • 举报
回复
在较早的处理器中,PentiumIII及更早的型号,也包括一部分PentiumIV,
EAX = 1,CPUID指令返回的结果中,只有EAX和EDX是定义的,EBX和ECX没有使用。但是Intel更新过的文档25366621中CPUID的说明中没有提及这一点。
所以你应该:
push ebx
push ecx
push edx
mov eax, 1
xor ebx,ebx ;
xor ecx,ecx ; 或者预置为其他固定的值
cpuid
mov IDAX, eax
mov IDBX, ebx
mov IDCX, ecx
mov IDDX, edx
pop edx
pop ecx
pop ebx
火雲邪神 2006-11-21
  • 打赏
  • 举报
回复
i *guess*, it won't change
大熊猫侯佩 2006-11-21
  • 打赏
  • 举报
回复
Table 3-13. Highest CPUID Source Operand for IA-32 Processors
IA-32 Processors
Highest Value in EAX
Basic Information Extended Function Information
Earlier Intel486 Processors CPUID Not Implemented CPUID Not Implemented
Later Intel486 Processors and
Pentium Processors
01H Not Implemented
Pentium Pro and Pentium II
Processors, Intel® Celeron®
Processors
02H Not Implemented
Pentium III Processors 03H Not Implemented
Pentium 4 Processors 02H 80000004H
Intel Xeon Processors 02H 80000004H
Pentium M Processor 02H 80000004H
Pentium 4 Processor supporting
Hyper-Threading Technology
05H 80000008H
Pentium D Processor (8xx) 05H 80000008H
Pentium D Processor (9xx) 06H 80000008H
Intel Core Duo Processor 0AH 80000008H

详细内容请参考 Instruction Set Reference
jamesking 2006-11-21
  • 打赏
  • 举报
回复
如果会发生变化,我该怎么做才能让CPUID指令不会变化,少取几个参数也没关系。比如IDCX、IDDX会变化,我就只取IDAX、IDBX。请给点建议,谢谢!
源码直接下载地址: https://pan.quark.cn/s/854bd57df23a 在金融行业中,房产购置贷款是众多人在购置不动产时必须进行的一项财务规划。Matlab作为一种功能强大的数学及数据分析平台,经常被应用于各类复杂的运算,其中包括住房贷款的计算。本文将详细研究运用Matlab开发住房贷款计算程序的相关知识要点,以协助读者掌握如何借助编程技术处理实际的信贷问题。 1. **信贷种类** - **商业信贷**:此类贷款通常由金融机构提供,其利率会随市场行情变化,借款人可选用固定利率或浮动利率方案。 - **公积金信贷**:该类贷款获得政府机构的支持,利率一般低于商业信贷,但设有最高贷款金额的限制。 2. **偿付模式** - **等额本金偿付**:每月支付相同数量的本金,利息部分逐月减少,因此整体还款总额会逐步降低。 - **等额本息偿付**:每月支付固定金额的本金与利息组合,利息部分随本金的逐月减少而递减。 3. **住房贷款计算公式** - **等额本息偿付**:每月还款额=贷款本金×[月利率×(1+月利率)^(贷款期数)]÷[(1+月利率)^(贷款期数)-1]。 - **等额本金偿付**:每月应还本金=贷款总额/贷款期数,每月利息=(贷款余额-累计已还本金)×月利率。 4. **Matlab编程基础** - **变量设定**:在Matlab环境中,首要任务是设定贷款数额、年化利率、贷款时长等核心参数。 - **循环控制结构**:借助for循环来模拟每个还款周期的过程,进行本金与利息的计算。 - **函数构建**:将住房贷款的计算逻辑封装为函数,便于重复使用和测试不同条件下的结果。 5. **Matlab代码编写** - **等额本息函数实现**...

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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