本文参考了这位大神的文章,并亲自在vs2019环境中操作了一遍,如有雷同,那就是抄的 。VS2015配置并运行汇编(一步一步照图做)【vs2017的链接在最后】_vs2015汇编环境-CSDN博客
创建空项目
建一个空项目,必须先建空项目,改现成的C++项目为assembly项目可能会造成编译不过。
选择生成依赖项
创建好了之后,不要着急创建源文件,先对项目进行一些设置。点击菜单栏->项目->生成自定义->选择masn
创建asm源文件
新建一个C++的源文件,将后缀改为.asm
extrn MessageBoxA: proc
;64位没有 .model 宏指令,不能指定内存模型和调用约定
.data
text db 'Hello World', 0
caption db 'Selph First x64 Application', 0
.code
WinMain proc
sub rsp,28h ; 函数调用前需要预留影子空间,对齐rsp
xor r9d,r9d
lea r8, caption
lea rdx, text
xor rcx,rcx
call MessageBoxA ; 函数调用使用fastcall
add rsp,28h
WinMain ENDP
END ; 最后直接end,不用指明符号
重要:把目标平台改为x64
如下,箭头指示的位置,修改一下即可
添加程序入口点
点击菜单栏->项目->属性->连接器->高级->入口点->设置为main
(其实这个可以自己随意设置,写代码的时候,入口函数需要和这里一致)
开始写代码
简单的测试代码,如果能运行就说明环境配置成功了~
断点调试
和VS开发其他语言相同,在代码最左侧可以插入断点,F10单步,F11进入函数内部。
查看寄存器值
因为是没有输出的,所以需要通过调试观察寄存器的值,按F11进入调试,然后点击菜单->调试->窗口->寄存器
查看内存中的内容
菜单->调试->窗口->内存
代码没有颜色,也没有智能提示?
点击菜单->拓展->管理拓展
然后搜索,AsmDude,点击下载,会非常的慢,耐心等待即可,你也可以去微软官网手动下载插件[https://marketplace.visualstudio.com/items?itemName=Henk-JanLebbink.AsmDude]
安装的时候需要把vs关掉,点击end tasks即可