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

 

posted @ 2018-03-22 20:17  木子苍苍  阅读(4321)  评论(0编辑  收藏  举报