写在前面
原本使用notepad++编写汇编语言,如今因为需要加入图形界面,所以这里引入MASM32工具包
安装时注意回弹出一个窗口选择安装的根目录位置,一般选择C盘,防止后续出现权限不足的清空
使用方法详见教程
VS2022配置汇编语言环境
注意,默认vs2022所带的平台工具集版本版本较高,无法正常支持masm32, 需要按照低版本的工具集。
如果已经安装了vs,则在菜单栏选择工具 -> 获取工具和功能 -> 修改,正常安装从官网下载
选择C++开发组件后,在单个组件里找到如下3个组件
设置好安装位置(缓存可以不保留),这里不建议保存在C盘,设置好后右下角安装
安装完毕后,创建新项目,选择控制台应用,设置好创建的文件夹
移除已有cpp,在弹出的窗口中选择删除
在下图蓝色项目名称中右键,生成依赖项->生成自定义->选中masm
接着在源文件中右键添加新项目,以.asm命名
因为masm是32位的,所以设置解决方案平台配置为x86
右键项目名称,选择属性,在链接器中找到高级,设置入口点为mainT
同时在VC++目录中设置包含目录为之前安装的masm32路径
这里我的路径是C:\masm32\include;$(IncludePath)
在链接器-常规中设置附加库目录
这里我的路径是C:\masm32\lib;%(AdditionalLibraryDirectories)
在配置属性-常规中设置windows sdk版本和平台工具集vs2015(v140)
现在可以开始写代码了,注意入口mainT
.386
.model flat, stdcall
.stack 4096
option casemap:none
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
.data
szCaption db 'A MessageBox !',0
szText db 'Hello, World !',0
; 代码段
.code
mainT PROC
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK
invoke ExitProcess,NULL
mainT ENDP
END mainT