gpt4 book ai didi

c++ - 如何检查 CPUID.(EAX=14H, ECX=0)?

转载 作者:太空狗 更新时间:2023-10-29 11:42:03 25 4
gpt4 key购买 nike

根据英特尔引用手册,如果CPUID.(EAX=14H, ECX=0):EBX.PTWRITE [Bit 4] = 0,指令将抛出#UD 异常。

如何检查这些值?

如果我使用 int __get_cpuid (unsigned int __level, unsigned int *__eax, unsigned int *__ebx, unsigned int *__ecx, unsigned int *__edx)来自 <cpuid.h>那么参数应该是什么?

最佳答案

你不能使用它。您还需要一个可以传入 ecx 的版本,因为它必须为零。如果可用,您可以使用 __cpuid_count,例如:

unsigned eax, ebx, ecx, edx;
if (__get_cpuid(0x00, &eax, &ebx, &ecx, &edx) == 0) {
// cpuid not supported
}
if (eax < 0x14) {
// leaf 0x14 not supported
}
__cpuid_count(0x14, 0x00, eax, ebx, ecx, edx);
if ((ebx & 0x10) == 0) {
// PTWRITE not supported
}

关于c++ - 如何检查 CPUID.(EAX=14H, ECX=0)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40732286/

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