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

Get Value From ASM (Assembly 64-bit) C++

本文关键字:c++ 获取 汇编 ASM 64位      更新时间:2023-10-16

我在装配& &;c++,我只是玩玩,学习如何在c++中使用汇编,但我似乎无法在asm中得到一个函数来返回我想要的值。我的c++代码

#include <iostream>
using namespace std;
extern "C" int GetValueFromASM();
int main()
{
    cout << GetValueFromASM();
    cin.ignore();
    return 0;
}

和我的asm代码在另一个文件:

.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 &为大会做准备。我在配置管理器中选择了x64,只是有一些额外的信息。

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

仅供x86

的一种方式

你必须改变这个:

extern "C" int GetValueFromASM();
他的

:

extern "C" int __stdcall GetValueFromASM();

另一种方式

或者在asm-file中定义这个

.model flat, c

而不是

.model flat, stdcall