gpt4 book ai didi

assembly - CPUID 值错误?

转载 作者:行者123 更新时间:2023-12-01 16:11:27 27 4
gpt4 key购买 nike

我的CPU是Intel Core2Quad Q9300 2.5GHz。 CPU-Z 给我的值是 Family:6、Model:7 和 Stepping:7。尝试使用 EAX=1 的 cpuid 指令编写 x86 程序集,我得到的只是 AL 中的值 0000 0010(我认为它应该是 0111 0111)。

大家有什么帮助吗?

最佳答案

可悲的是(由于大量的废话)英特尔的“家族”数量从 5(奔腾)到 6(奔腾 Pro、奔腾 II、奔腾 II)再到 15(奔腾 4),然后又回到了 6 (Pentium M、Atom、Core、Core2、Nehalem、Sandy Bridge 等)。

这主要意味着(就其本身而言)“系列”字段对于确定 CPU 的系列毫无用处。相反,如果“family = 6”,则必须使用型号来确定系列(并且型号的顺序不正确或任何其他顺序 - 例如型号 8、10 和 11 是 Pentium III,并且位于其中的中间)型号 9 是 Pentium 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 详细信息是“系列 = 6,型号 = 23”。这将使其成为 Core 2 (Penryn)。

关于assembly - CPUID 值错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14515608/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com