gpt4 book ai didi

c++ - 使用 C++ 在 Netbeans 中进行内联汇编

转载 作者:行者123 更新时间:2023-11-30 00:56:30 25 4
gpt4 key购买 nike

我正在尝试从 youtube 上发布的一系列非常好的教程中学习汇编:

http://www.youtube.com/watch?v=guru397zg2g&list=PL0C5C980A28FEE68D&feature=plcp&context=C4ca8d4cFDvjVQa1PpcFM2reYRFji1sQFkiYY545AxtksGRUnLWSY=

我熟悉 netbeans 中的 C++ 和 Java 编程,并且我使用的是 MinGW 编译器集。我在 netbeans 编译器属性中设置了我的 C++ 和汇编编译器。

我的 C++ 代码正在编译,但是使用 _asm {} 尝试内联汇编代码没有正确编译。

我收到的错误是:

main.cpp: In function 'int getValueFromASM()':

main.cpp:18:5: error: '_asm' was not declared in this scope

main.cpp:18:10: error: expected ';' before '{' token

make[2]: *** [build/Debug/MinGW_1-Windows/main.o] Error 1

make[1]: *** [.build-conf] Error 2

make: *** [.build-impl] Error 2

代码是:

#include <cstdlib>
#include <iostream>

using namespace std;



int getValueFromASM()
{
_asm {
mov eax, 39
}
}

int main(int argc, char** argv) {

cout << "Hello World from C++ !\n";

cout << "ASM said " << getValueFromASM() << endl;

cout << "Back in the program before close.\n";

return 0;

}

有人可以指出如何让内联汇编在 netbeans 中工作的方向。

最佳答案

您收到编译错误是因为您使用了错误的语法。

尝试将您的 getValueFromASM 方法更改为:

int getValueFromASM()
{
asm("mov $39, %eax");
}

可在此处找到使用 GCC 进行内联汇编的良好指南:http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html

关于c++ - 使用 C++ 在 Netbeans 中进行内联汇编,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9933915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com