编译64位程序时使用汇编的方法总结

Last updated on November 5, 2021 pm

转载声明

该博文转载自看雪论坛

本文作者:尼古拉斯大拿

原文地址:编译64位程序时使用汇编的方法总结

文中所用的环境

1
2
win10 20H2(19042.928)
Visual Studio 2019(16.11.5)

64位程序开发中使用汇编的两(三)种方法

第一种:通过添加obj文件

编写汇编代码。

通过ml64编译得到obj

1
ml64 /c MyAdd.asm

/c是只编译不链接,钱老师n久之前讲过的知识。

把obj文件添加(拖拽)到工程

测试使用汇编中的函数

第二种:联合编译

联合编译的方法1

添加.asm文件到工程

对添加的.asm文件属性做设置

默认添加的是不参与生成的,需要手动设置一下

选择自定义生成工具后点击应用,会出现新的选项。

在“自定义生成工具”中设置“命令行”和“输出文件”。

1
2
3
4
//命令行栏 内容
ml64 /c %(fileName).asm
//输入栏 内容
%(fileName).obj;%(Outputs)

输入完毕点击确定,然后编译工程测试下,会看到输出了 .obj文件。

测试使用汇编中的函数

声明.asm中的函数并编写测试代码使用它。

测试结果正常,当然还有一种类似的方法,更为简单

联合编译的方法2

修改工程生成依赖项

右键点击工程名,在弹出的菜单选择“生成依赖项”—-> “生成自定义”

勾选 masm后确定

添加.asm文件编写代码,声明.asm中的函数,使用测试

这里可以在解决方案资源管理器里,右键选中添加的.asm文件,然后在弹出菜单中选择“属性”,查看下“项类型”是否为“Microsoft Macro Assembler”,如果不是,那需要手动设置下。一般情况下在添加了生成自定义,这时候是不需要自己再对文件设置了。

写在最后

我自己更倾向于最后一种方法,原因就是简单,之后再添加.asm文件不需要额外的设置了。哪里写的不对的请多多指正。
2021年11月5日13点14分


编译64位程序时使用汇编的方法总结
http://dubhehub.github.io/blogs/2021110513150017806.html
Author
尼古拉斯大拿
Posted on
November 5, 2021
Licensed under