首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CPUID错误的值?

CPUID错误的值?
EN

Stack Overflow用户
提问于 2013-01-25 12:58:30
回答 1查看 368关注 0票数 3

我的中央处理器是英特尔Core2Quad Q9300 2.5 the。尝试在EAX=1中使用cpuid指令编写x86程序集时,得到的结果是AL中的值为00000010(我认为它应该是01110111)。

有帮手吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-25 14:21:21

可悲的是(由于大量的失败)英特尔的“家族”数字从5(奔腾)到6(奔腾Pro、奔腾II、奔腾II)到15 (奔腾4),然后又回到了6(奔腾M、原子、酷睿、Core2、尼海伦、桑迪桥等)。

这主要意味着(就其本身而言) " family“字段对于确定CPU的系列是无用的。相反,如果"family = 6",则必须使用型号来确定系列(并且型号不是合理的顺序或任何东西-例如,型号8、10和11是奔腾III,而型号9的中间是奔腾M)。

还要注意的是,型号最初是4位(在EAX中是第4位到第7位),这不足以处理Intel的“一切都是家族6”的愚蠢之处,所以他们后来又用4位扩展了型号(在EAX中是第16位到第19位)。这意味着要获得完整的型号,你需要做一些小调整(例如model = ( (EAX >> 4) & 0x0F) | ( (EAX >> 12) & 0xF0);)。

例如,对于模型23,EAX中的值将是0x?1??7?,而较旧的软件(在引入“模型号扩展”之前设计)会错误地认为CPU是“模型7”,而事实并非如此。

我假设您已经执行了相同的操作(忘记在型号中包含“扩展型号”);并且您的实际CPU的详细信息是"family = 6,model = 23“。这将使它成为核心2 (Penryn)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14515608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档