0

包含内联 asm 代码的文件格式为 xyz.c,我使用的是 Visual C++ 2010 Express IDE。我收到标题中提到的错误。任何帮助表示赞赏!谢谢!

我的代码大致是这样的。

#include "xyz.h"

/*
; Multi-line comments
;
*/

__asm{
    Assembly code
}
 /*
; Multi-line comments
;
*/
.
.
.

__asm{
    Assembly code
}
 /*
; Multi-line comments
;
*/

__asm{
    Assembly code
}
4

2 回答 2

2

您不能将 asm 代码(或任何其他代码)直接放入全局范围。你必须把它放在一个函数中。

void f()
{
    __asm {
        Some code
    }
}
于 2012-07-20T11:43:23.977 回答
0

这个例子对我有用:

#include <windows.h>
#include <iostream>

using namespace std;

int Add(int x, int y){
    asm(
          "addl %1, %0"
          : "=r"(x)
          : "m"(y), "0"(x)
    );
return x;
}


int main ()
{
    int x,y;

    cout<<"Enter first number\n";
    cin>>x; //enter first number
    cout<<"Enter second number\n";
    cin>>y; //enter second number

    cout<<Add(x,y)<<endl;

return 0;

}

您可以看到不同的语法。但是 asm{} 或 __asm__{} 或任何带有 {} 的东西都不适用于 minGW,显然只能用于 Visual Studio。

于 2015-04-30T15:57:53.680 回答