欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

图解命令行手动编译构建一个win32汇编程序

发布时间:2025/4/14 编程问答 30 豆豆
生活随笔 收集整理的这篇文章主要介绍了 图解命令行手动编译构建一个win32汇编程序 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

首先安装masm32 V11.0;安装完后出现下列对话框;

图没截好;下面图的 k. 是 link. ;ktopPath是DesktopPath;

此段代码的含义是用WScript创建了一个快捷方式,指向刚安装的masm32的编辑器;快捷方式位于桌面;

 

下面来手动编译一个win32 汇编程序;

先建立环境变量如下;

新建;

新建;

还有个lib变量也是新建;忘了截图;见后面代码;

Path中添加如下内容;

 

未构建之前,有四个文件;一个图标,一个makefile,一个asm文件,一个rc文件;

手动命令行构建不需要makefile;

 

首先打下图命令编译;编译之后看到obj出来了;

 

打下图命令编译资源;成功后看到rc编译后的res文件出来了;

 

再打下图命令;链接;成功后看到exe出来了;这就是手动编译构建的全过程;

 

上述相关代码来自罗云琳书中代码;

var.bat;

 

@echo off rem 请根据 Masm32 软件包的安装目录修改下面的 Masm32Dir 环境变量! set Masm32Dir=C:\Masm32 set include=%Masm32Dir%\Include;%include% set lib=%Masm32Dir%\lib;%lib% set path=%Masm32Dir%\Bin;%Masm32Dir%;%PATH% set Masm32Dir= echo on


Test.asm

 

 

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; Sample code for < Win32ASM Programming > ; by 罗云彬, http://asm.yeah.net ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; Test.asm ; 编程环境测试代码 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; 使用 nmake 或下列命令进行编译和链接: ; ml /c /coff Test.asm ; rc Test.rc ; Link /subsystem:windows Test.obj Test.res ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.386.model flat,stdcalloption casemap:none ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; Include 文件定义 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> include windows.inc includeINCLUDE2.inc includelINCLUDE32.lib include kernel32.inc includINCLUDErnel32.lib ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; 数据段 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.dataszCaption db '恭喜',0 szText db '当您看到这个信息的DB,您已经可以编译Win32汇编程序了!DB0;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; 代码段 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.code start:invoke MessageBox,NULL,offset szText,offset szCaption,MB_OKinvoke ExitProcess,NUOFFSET>>>>>>>>OFFSET>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>end start END


Test.rc

 

1        icon    "Main.ico"

 

Makefile

 

EXE = Test.exe #指定输出文件 OBJS = Test.obj #需要的目标文件 RES = Test.res #需要的资源文件LINK_FLAG = /subsystem:windows #连接选项 ML_FLAG = /c /coff #编译选项$(EXE): $(OBJS) $(RES)Link $(LINK_FLAG) $(OBJS) $(RES).asm.obj:ml $(ML_FLAG) $< .rc.res:rc $<clean:del *.objdel *.res


看下Makefile,makefile执行完后,会删除obj和res文件;而前面手动构建的情况,这两个文件还在;

 

 

总结

以上是生活随笔为你收集整理的图解命令行手动编译构建一个win32汇编程序的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。