MASM32是一个不错的汇编IDE,但是里面的ml.exe和link.exe太老了。于是我直接用了visual studio 2019里面带的ml.exe和link.exe。
首先安装MASM32和visual studio 2019,然后在计算机环境变量里面,添加环境变量,
include变量是masm32文件夹里面include头文件的位置,lib变量是变量是masm32文件夹里面lib文件的位置,编译和链接的时候,ml.exe和link.exe需要找到这些文件的位置。
Path里面添加visual studio 2019里面,x86文件夹里面ml.exe和link.exe文件的位置。
环境变量设置完成后,就可以在CMD窗口里面使用ml命令编译汇编文件,使用link来链接文件。
不知道为什么lib变量设置后没有生效,在link的时候仍然需要手动指定lib文件的位置。
.386
.model flat, stdcall
option casemap:none
include windows.inc
include user32.inc
include kernel32.inc
includelib user32.lib
includelib kernel32.lib
.data
szCaption db 'Duke56',0
szText db 'Hello World!',0
.code
start:
invoke MessageBox,\ ; 调用函数名
NULL,\ ; 父窗口句柄
offset szText,\ ; 文字
offset szCaption,\ ; 标题
MB_OK ; 按钮类型
invoke ExitProcess, NULL
end start
以上代码使用记事本等保存为test.asm文件。然后在CMD窗口中,进入test.asm文件的目录,使用ml /c /coff test.asm编译test.asm成test.obj文件,再使用link /subsystem:windows /libpath:e:\masm32\lib test.obj,链接后成为test.exe文件。