Vs2010编译64位汇编代码,并在C++文件中调用


1、新建一个空项目

进入配置管理器,配置生成64位程序。

 

2、新建asm文件,并对文件进行配置

右键点击test.asm文件,点击属性,弹出属性页面:

类型项下拉按钮选择自定义生成工具,点击右下角应用按钮,然后会在左边新增一个自定义生产工具的选项,点击该选项下的常规选项。

修改命令行和输出项如下:

命令行:ml64 /Fo $(IntDir)%(fileName).obj /c %(fileName).asm

输出:$(IntDir)%(fileName).obj

点击应用:

 

3、在asm文件中定义函数,并在c文件中调用

运行结果如下:

 

4、一些值得注意的问题

  1、项目名、asm文件名、项目路径中不要包含中文字符,否则在编译asm文件时会报错误字符。

  2、注意32位汇编和64位汇编在函数调用是的参数传递问题。在64位中,函数调用前4个参数从左到右依次是rcx,rdx,r8,r9这4个寄存器来传递,剩下的参数从左到右依次入栈。

  3、注意extern关键字。

 

 5、参考

  1、https://www.cnblogs.com/shines77/p/3788514.html

  2、http://blog.csdn.net/woainishifu/article/details/54017550

  3、https://blog.csdn.net/robin__chou/article/details/50275061

  4、https://www.cnblogs.com/achillis/p/5369658.html

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM