gpt4 book ai didi

c++ - 从 ASM(汇编 64 位)C++ 中获取值(value)

转载 作者:行者123 更新时间:2023-12-05 07:54:59 24 4
gpt4 key购买 nike

我在使用 Assembly 和 C++ 时遇到问题,我只是在玩弄和学习如何在 C++ 中使用 Assembly,但我似乎无法在 asm 中获得一个函数来返回我想要的值。我的 C++ 代码:

#include <iostream>

using namespace std;

extern "C" int GetValueFromASM();

int main()
{
cout << GetValueFromASM();
cin.ignore();
return 0;
}

我的汇编代码在另一个文件中:

.code
GetValueFromASM proc
move eax, 489
ret
GetValueFromASM endp

end

我收到的错误是

Error2 error LNK1120: 1 unresolved externals    
Error1 error LNK2019: unresolved external symbol GetValueFromASM referenced in function main

我正在使用 Visual Studio 2013 和 masm 进行程序集,我在配置管理器中选择了 x64,那里只是一些额外的信息。

我将非常感谢任何帮助,因为我是 asm 的新手。

最佳答案

仅适用于 x86

单向

你必须改变这个:

extern "C" int GetValueFromASM();

给他的:

extern "C" int __stdcall GetValueFromASM();

另一种方式

或者在 asm 文件中定义这个

.model flat, c

而不是这个

.model flat, stdcall

关于c++ - 从 ASM(汇编 64 位)C++ 中获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30555209/

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