【发布时间】:2013-07-19 11:11:34
【问题描述】:
考虑到我正在使用 C++ 进行编码,如果可能的话,我想使用类似 Intrinsics 的解决方案来阅读有关硬件的有用信息,我的担忧/考虑是:
- 我不太了解汇编,仅获取此类信息将是一笔可观的投资(虽然它看起来像 CPU,但它只是关于翻转值和读取寄存器。)
- 至少有 2 种流行的 asm 语法(Intel 和 AT&T),所以它是零散的
- 奇怪的是,如今 Intrinsics 比 asm 代码更受欢迎和受支持
- 目前我所关注的并非所有编译器都支持内联 asm,MSVC 64 位就是其中之一;恐怕我在深入挖掘我必须使用的不同编译器的功能集时会发现其他类似的缺陷。
- 考虑到我认为押注 Intrinsics 对我来说更有效率,它也应该比任何 asm 代码更容易。
我要回答的最后一个问题是:如何用内在函数做类似的事情?因为除了 CPUID 操作码之外,我没有找到任何其他信息来获取此类信息。
【问题讨论】:
-
Clang 有一个集成的汇编器,它对 Intel 风格的汇编的支持有时参差不齐。无法在 Intel 风格下生成简单的
negate (neg)。
标签: c++ intrinsics cpuid