问题标签 [cpuid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1167 浏览

c# - 这条线在 Python 中是什么意思?

此代码试图检索哪些 CPU 信息。此代码是更大包的一部分。我不是 Python 程序员,我想将此代码转换为 C#。

如果你是一名 Python 程序员并且知道这段代码在做什么,那对我来说将是一个很大的帮助。

0 投票
1 回答
3872 浏览

cpu - Intel i7 处理器上的 CPUID

我在基于 i7 的较新机器上的基于 CPUID 的代码存在问题。它将 CPU 检测为具有 8 个 HT 单元的单核,而不是每个具有 2 个 HT 单元的 4 个核。

我一定是误解了从 CPU 返回的 CPUID 信息的结果,但我不知道如何。

基本上,我遍历每个对 Windows 可见的处理器,为该线程设置线程亲和性,然后进行一系列 CPUID 调用。

该序列对系统中的其余 CPU 重复。

有没有人遇到过这个问题?

0 投票
3 回答
42781 浏览

c++ - C++ 中的 CPUID 实现

我想知道这里是否有人有一些 C++ CPUID 实现的好例子,可以从任何托管的 .net 语言中引用。

另外,如果不是这种情况,我应该知道 X86 和 X64 之间的某些实现差异吗?

我想使用 CPUID 来获取运行我的软件的机器上的信息(崩溃报告等...),并且我想保持一切尽可能广泛兼容。

我问的主要原因是,尽管我对 CPU 寄存器等有基本的了解,但在编写可能是所有机器指令的内容时,我是一个完全的菜鸟……

在人们开始告诉我 Google 之前:我在网上找到了一些示例,但通常它们并不意味着允许来自托管代码的交互,而且这些示例都不是针对 X86 和 X64 的。大多数示例似乎是特定于 X86 的。

0 投票
3 回答
1018 浏览

c - 无需组装即可检测 CPU 功能

我一直在寻找确定 CPU 及其功能的方法(例如 SEE、SSE2 等)。

然而,我发现的所有方法都涉及使用 cpuid 指令的汇编代码。鉴于编译器甚至目标之间在 c/c++ 中进行汇编的不同方式(在 VC 下没有用于 64 位目标的内联汇编),我宁愿避免这种情况。

是否有一些简单的库或操作系统函数(适用于 windows 和 linux)来获取这些信息?

目前我只对使用 x86 和 x86-64 CPU 的平台感兴趣,而且我绝对需要至少支持 AMD 和 Intel。

0 投票
7 回答
20924 浏览

java - 如何在java中获取cpu-id?

我想用java创建一个加密。
无论如何要获得CPU Id或PC中唯一的任何东西,例如BIOS或...

例如System.getCpuId();,这只是一个例子

非常感谢 ...

0 投票
2 回答
709 浏览

c++ - C++ 字转字节

我尝试使用 C++ 中的汇编程序读取 CPUID。我知道它有它的功能,但我想要 asm 方式。因此,在 CPUID 执行后,它应该用 ASCII 编码的字符串填充 eax、ebx、ecx 寄存器。但我的问题是,因为我只能在 asm 中寻址完整或半 eax 寄存器,如何将 32 位分解为 4 个字节。我用这个:

0 投票
8 回答
18408 浏览

c# - C# 中的 x86/x64 CPUID

我的其他问题相关,请帮助我调试“未知模块中发生'System.AccessViolationException'类型的未处理异常。附加信息:尝试读取或写入受保护的内存。这通常表明其他内存已损坏。” 单步执行代码,一切正常,直到实际调用 del() 并在该行中失败。

此代码基于本文的示例和此在 python 中工作的python 代码。我也无法让代码示例按原样工作(同样的例外),但我希望它只是有点过时了。

编辑:如果您关心我们是如何到达这里的,请查看编辑历史,这很无趣。

完成的工作版本:

注意 CPUID0 需要按正确的顺序读取:

0 投票
2 回答
1577 浏览

visual-c++ - 一些内联汇编问题

我已经在这里问过类似的问题,但我仍然遇到一些错误,所以我希望你能告诉我我做错了什么。只知道我懂汇编,而且我在8051的汇编里做过几个项目,甚至不一样,接近x86 asm。

我在 VC++ 2010 Express 中尝试了一段代码(我正在尝试从 CPUID 指令中获取信息):`

因此,快速总结一下,我尝试创建指向数组第一个元素的 void 指针,而不是使用间接寻址只是从寄存器中移动值。但是这种方法给了我“围绕 b 变量的堆栈损坏的运行时错误”,但我不知道为什么。

请帮忙。谢谢。这只是为了学习目的,我知道CPUID有一些功能......

编辑:另外,如何在 x86 VC++ 2010 内联汇编器中使用直接寻址?我的意思是 8051 中立即数加载的常用语法是,mov src,#number但在 VC++ asm 中它mov dest,number没有 # 符号。那么如何告诉编译器你想直接访问内存单元地址 x 呢?

0 投票
1 回答
2319 浏览

c# - 尝试通过 WMI 获取 CPU ID 时生成“未找到”异常

我正在使用此代码来获取处理器 ID:

我正在运行 Windows 7 32 位 Visual Studio 2008。不幸的是,mc.GetInstances() 方法调用引发了“未找到”异常。

这是一段类似的代码(获取硬盘序列号):

此代码也失败 - “disk.Get()”方法引发“无效类”异常。

我已经在关闭和打开 UAC 的情况下运行此代码 - 没有任何帮助。

我究竟做错了什么?

0 投票
1 回答
1214 浏览

x86 - 使用 CPUID 指令确定 x86 MONITOR 指令地址范围

英特尔的 MONITOR 文档说:

MONITOR 指令使用 EAX 中指定的地址武装地址监控硬件(监控硬件检查存储操作的地址范围可以通过使用 CPUID 确定)。存储到指定地址范围内的地址会触发监控硬件。MWAIT 使用监视器硬件的状态。

那么有没有人确切地知道我应该向 CPUID 提供什么 EAX 值以获得“监控硬件检查存储操作的地址范围可以通过使用 CPUID 来确定”。

或者 MONITOR 地址范围只是缓存线的大小?