C++代码中如何调用.asm文件中的函数?

菜鸟一只_热爱ASM 菜鸟一只_热爱ASM 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我看到关于这样的运用,可是我在win7 vc不兼容,而且也比较喜欢vs,我想求助一下VS应该怎么设置呢?或者有别的方法。谢谢了。
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
以VC6为例,详细的讲述如何用 .cpp 和 .asm混合编成:

1。工具集成:
1)首先你应该安装汇编器,比如masm,我用的是 Microsoft (R) Macro Assembler Version 6.15.8803,对应的汇编器执行文件时ml.exe,你应该把ml.err,ml.exe 复制到VC的bin目录(我这里是:D:\Program Files\Microsoft Visual Studio\VC98\Bin)

2)在你的project中添加.asm文件,the .asm文件应该和.dsp 位于同一目录。
3)选中project中的asm文件,单击右键,选择settings菜单,弹出一个对话框,打开custom Build选项卡,在commands 中输入:ml /coff /c $(InputName).asm,
在outputs 中输入 $(InputName).obj。
这样,就可以在VC集成环境中自动编译连接你的程序了。

2。函数接口:汇编语言写的函数要被C语言调用,一定要遵循一个规范,调用约定(Calling convention),这个规范定义了参数传递,堆栈平衡等。
1)在Cpp/h文件中声明函数的调用方式:
如 extern "C " void ADD(int *Result, int a,int b);
在cpp文件中调用汇编函数extern "C " 是必须的,在c文件中调用汇编函数不需也不能使用extern "C "。
2)书写汇编程序,汇编语言中的函数名 必须是cpp文件中声明的函数名前加下划线如_Add
第一个参数是 [esp+4],第二个函数时 [esp+8],如果函数有返回值,返回值送入eax,汇编代码中最后一条语句是ret,要注意堆栈平衡.
...全文

相关推荐

评论 12
收藏 已收藏
分享
返回顶部