我的目标是把一个寄存器的值从asm代码/文件放到我的c++代码的变量中。我的问题是,我可以用32位的内联汇编很好地做到这一点,但是,如果我正确地理解了64位的程序没有办法使用内联asm文件,它甚至可能吗?我理解asm文件不知道MyVal是什么,但是我怎么把这两个“联系”起来呢?
This is my c++ file:
#include <iostream>
extern "C" int myAsm();
int myVal = 0;
int main()
{
myAsm();
std::cout << "MyVal is: " << myVal << std::endl;
getchar();
return 0;
}
This is my .asm file:
.code
myAsm proc
mov myVal, eax
ret
myAsm endp
end
EDIT:实施建议后的错误截图:
1条答案
按热度按时间wn9m85ua1#
这是完整的解决方案,感谢评论的人。(我不能马上接受我自己的答案,因为2天的延迟。)如何在Visual Studio 2022社区中重新创建:
C++文件:
asm文件:
结果: