参考了以下文章
VS2013 编写汇编程序
32位汇编程序
工具:VS2019
- 创建一个新的空项目
- 右键项目-生成依赖项-生成自定义
- 在弹出的“Visual C++ 生成自定义文件”窗口中勾上“masm”
- 在项目的“源文件”文件夹下右键-添加-新建项,弹出的“新建项”窗口中随便选择一个类型的文件(这里我选择的是C++文件),然后修改文件后缀名为“.asm”,最后点击“添加”。
注意:默认添加文件后“解决方案平台”选项应为“x86”,如果不是,需要手动修改
下面是一个32位汇编程序的模板
;32位汇编程序模板 (Template)
.386
.model flat,stdcall
.stack 4096
;声明一个ExitProcess函数
ExitProcess PROTO, dwExitCode:DWORD
.data
;在这里声明变量
.code
main PROC
;这里写自己的代码
INVOKE ExitProcess,0
main ENDP
END main
64位汇编程序
同 32位汇编程序 的1-4步,然后“解决方案平台”选项应为“x64”,
如果出现“无法解析的外部符号 mainCRTStartup”的错误就需要添加入口点,在项目上右键-属性-在弹出的“属性页”窗口中展开配置属性-展开链接器-选择高级-选中入口点并修改为自己代码中的main过程,最后应用-确定。
下面是一个64位汇编程序的模板
;64位汇编程序模板 (Template)
;声明一个ExitProcess函数
ExitProcess PROTO
.data
;在这里声明变量
.code
main PROC
;这里写自己的代码
mov ecx,0
call ExitProcess
main ENDP
END
64位汇编程序不支持invoke伪指令,使用call指令代替