- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用的是 VS2012 C++ Windows 7,我需要获取有关 CPU 多线程的信息以计算可用逻辑处理器的数量。
我正在使用此代码(来自 This SO Post)
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
uint32_t registers[4];
__asm__ __volatile__ ("cpuid " :
"=a" (registers[0]),
"=b" (registers[1]),
"=c" (registers[2]),
"=d" (registers[3])
: "a" (1), "c" (0));
unsigned CPUFeatureSet = registers[3];
bool hyperthreading = CPUFeatureSet & (1 << 28);
此程序集无法编译,出现以下错误:
error C2065: '__asm__' : undeclared identifier
我尝试更改为 __asm __volatile
并将所有内容放在一行中:
__asm __volatile ("cpuid " : "=a" (registers[0]), "=b" (registers[1]), "=c" (registers[2]), "=d" (registers[3]) : "a" (1), "c" (0));
这也不起作用,导致:
error C2400: inline assembler syntax error in 'opcode'; found '('
感谢帮助解决这个问题。
最佳答案
如果你坚持使用cpuid,你应该使用__cpuid()
内部函数。 msdn page甚至附带示例代码。像这样:
#include <intrin.h>
void foo()
{
uint32_t registers[4];
__cpuid(registers, 1);
unsigned CPUFeatureSet = registers[3];
// ...
}
关于c++ - VS2012 支持 __asm__ __volatile__ 汇编代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35874661/
我想把C的outb函数移植到D上。 static __inline void outb (unsigned char value, unsigned short int port) { __a
几天以来我一直在尝试编写一个非常简单的内联汇编代码,但没有任何效果。我有 NetBeans 作为 IDE 和 MinGW 作为编译器。我最新的代码是: uint16 readle_uint16(con
__asm__ __volatile__ () 的基本作用是什么?对于 ARM 架构,“内存” 的意义是什么? 最佳答案 asm volatile("" ::: "memory"); 创建一个编译器级
用gcc编译的C代码中volatile和__volatile__有什么区别? 我正在查看 Linux 源代码,我注意到有些地方使用 __asm__ __volatile__ 其他地方使用 asm vo
我使用的是 VS2012 C++ Windows 7,我需要获取有关 CPU 多线程的信息以计算可用逻辑处理器的数量。 我正在使用此代码(来自 This SO Post) typedef __int3
我研究了一些来自 的C代码 http://www.mcs.anl.gov/~kazutomo/rdtsc.html 他们使用诸如 __inline__、__asm__ 等东西,如下所示: 代码1: s
我在 Linux 环境中处理 Nasm 和 GNU C 内联 asm 有一段时间了,这个功能工作得很好......但现在我正在切换到 Windows 环境,我想使用 Masm(与 VS2008)我不能
在 GCC 内联汇编中,有两种方法可以防止被优化掉:__volatile__ 关键字和将 "memory" 插入 clobber 寄存器列表。 我的问题是 __volatile__ 和 "memory
我是一名优秀的程序员,十分优秀!