masm32环境配置
阅读原文时间:2021年04月20日阅读:1

软件:

Windows7-32bit

visual c++6.0

Masm32 sdk 11

安装:

0x00 ||  下载Masm sdk 11并安装,下载路径:http://www.masm32.com/

0x01 ||  安装visual c++,自行百度,最好是英文版

配置:

0x02 ||  将E:\Visual C++ 6.0\VC6\VC98\Bin目录下的NMAKE.exe拷贝放到E:\masm32\目录下,我们后面要用到这个

0x03 ||  添加var.bat文件到E:\masm32\目录,因为我们以后会用visual c++来建立一些资源文件,所以include里面的内容还包括VC安装路径include和MFC\include

1 @echo off 2 rem 请根据 Masm32 软件包的安装目录修改下面的 Masm32Dir 环境变量! 3 set include=E:\masm32\Include;E:\Visual C++ 6.0\VC6\VC98\Include;E:\Visual C++ 6.0\VC6\VC98\MFC\Include
4 set lib=E:\masm32\lib 5 set path=E:\masm32\Bin;%path%
6 echo on

实践:

0x04 ||  按shift,鼠标右键打开cmd,切换到E:\masm32\目录下,运行var.bat文件,如下图

0x05 ||  在该目录下新建一个工程目录source,以后可以在里面写一些win32项目

0x06 ||  切换到source,新建一个Test文件夹,这样就可以写我们的win32代码,win32项目各文件如下

0x07 ||  在cmd中执行nmake命令

0x08 ||  第一个由汇编代码写的程序完成,双击Test.exe,弹出一个消息框

代码:

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; Sample code for < Win32ASM Programming 3rd Edition> ; by 罗云彬, http://www.win32asm.com.cn ; Change by 大老黑, http://geekfz.cn ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; Test.asm ; 编程环境测试代码 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; 使用 nmake 或下列命令进行编译和链接: ; ml /c /coff Test.asm ; rc Test.rc ; Link /subsystem:windows Test.obj Test.res ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386 .model flat,stdcall
option casemap:none ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; Include 文件定义 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc include user32.inc includelib user32.lib
include kernel32.inc includelib kernel32.lib ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; 数据段 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.const

szCaption db '极客改变世界', 0 szText db '来吧,和极客方舟一起成长',0

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; 代码段 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code start: invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK
invoke ExitProcess,NULL ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start

Test.asm

EXE = Test.exe #指定输出文件
OBJS = Test.obj #需要的目标文件
RES = geek.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 *.obj
del *.res

Makefile

总结:

0x09 ||  这个程序虽小但却五官俱全,包括源代码.asm、资源文件.res、以及我们看不到的一些.lib

0x0A ||  小技巧:制作资源文件时候可以导入图标后直接保存为.RES文件,这样nmake命令就不用再去调用.rc文件生成资源文件

0x0B ||  nmake和Makefile用法及格式可以参考以下书籍

参考书籍:Windows环境下32位汇编语言程序设计(典藏版).pdf

(百度云盘:https://pan.baidu.com/s/1ZAgw0Wpn2quL4bC-YKhSZg  uh97)

转载于:https://www.cnblogs.com/YangARTuan/p/10764742.html

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章