Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C++;? 我试图通过将程序集嵌入到C++中获得CPU信息。_C++_Assembly - Fatal编程技术网

如何在C++;? 我试图通过将程序集嵌入到C++中获得CPU信息。

如何在C++;? 我试图通过将程序集嵌入到C++中获得CPU信息。,c++,assembly,C++,Assembly,灵感来自微软的代码 但我想这里的代码应该有所不同,因为我使用macOS编译 CXXFLAGS = -g -Wall LDLIBS = -msse2 OBJS = main.o PROGRAM = main $(PROGRAM): $(OBJS) $(CXX) $^ $(LDLIBS) -o $@ 我的代码实际上是 #include <iostream> #include <string> #include <array> #inclu

灵感来自微软的代码

但我想这里的代码应该有所不同,因为我使用macOS编译

CXXFLAGS = -g -Wall
LDLIBS   = -msse2
OBJS     = main.o  
PROGRAM  = main
$(PROGRAM): $(OBJS)
  $(CXX) $^ $(LDLIBS) -o $@
我的代码实际上是

#include <iostream>
#include <string>
#include <array>
#include <memory>
#include <x86intrin.h>
using namespace std;
string get_cpu_name() {
  uint32_t data[4] = { 0 };
  asm 
  (  
    "cpuid\n"
    "mov data[0], ebx"
  );
  return string((const char*)data);
}
int main() {
  cout << "hi" << endl; 
}
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
字符串get\u cpu\u name(){
uint32_t数据[4]={0};
asm
(  
“cpuid\n”
mov数据[0],ebx
);
返回字符串((常量字符*)数据);
}
int main(){

你能用GCC编译吗?它使用与msvc不同的汇编语法,请改用内置函数。@我在macOS上,
/usr/bin/c++->clang++
clang也使用与GCC相同的汇编语法:@Jester我有兴趣通过嵌入汇编来获得它。
c++ -g -Wall   -c -o main.o main.cpp
main.cpp:15:6: error: unexpected token in argument list
    "mov data[0], ebx"
     ^
<inline asm>:2:9: note: instantiated into assembly here
mov data[0], ebx
        ^
1 error generated.
make: *** [main.o] Error 1