32位汇编学习札记(二)
win32汇编语言第二章(6.22)
win32开发源码的组成
win32可执行文件的源码包括两个大的部分:汇编代码和资源文件 1.汇编代码: a. asm文件:我们自己编写的汇编源码 b. windows.inc:系统api的声明文件,在我们的源代码中包含这个头文件后就可以调用windows提供的api。 c. *.inc:用户自定义头文件,我们自己编写的或者第三方函数库的头文件 2.资源文件: a.rc文件:资源文件脚本,用于定义可执行文件中的资源包括(菜单、窗口、图形、声音等资源) b.resource.h:资源文件头文件 c.其他独立的文件资源:bmp、ico、cur、wav等文件
win32可执行文件的编译过程:
1.asm windows.inc *.inc 通过ml.exe生成 .obj 2.rc resource.h 其他独立资源文件 通过rc.exe 生成 .res 3.obj和rec加入dll文件 通过link.exe 生成exe文件
编译过程常用的命令:
ml 常用编译选项 ml /c /coff /Cp /Gz /Zi link 常用方法 link /subsystem:windows a.obj b.obj c.lib d.res link /subsystem:console a.obj b.lib c.res link /subsystem:windows /dll /def:a.def b.obj c.lib d.res
环境搭建
1.下载masm32开发包,解压到c盘后在masm32目录下有bin,include,lib目录 2.下载namke.exe文件,将namke.exe文件拷贝到masm32/bin目录下 3.编写设置变量文件 4.下载安装notepad++用于源文件编辑器 5.下载安装vc6.0用于编辑资源文件
makefile文件结构
makefile包含3个部分 1.宏定义部分 a.定义目标文件 b.定义obj文件 c.定义res文件 d.定义编译命令 2.显示规则部分 显示规则定义了文件之间的依赖关系及使用命令,除了特殊情况(clean)显示规则都需要定义依赖文件,当显示规则没有命令的时候就会使用隐含规则中的命令 3.隐含规则部分 定义了文件之间默认的编译规则,不包含依赖文件。可以把隐含文件理解为,遇到a文件就使用命令c编译成b文件
nmake的执行过程
nmake通过makefile来编译目标文件 1.找到makefile中第一个显示规则,调用命令对依赖关系中提供的文件进行编译 2.如果显示规则没有提供命令则使用隐含规则中的命令进行编译 3.如果依赖关系不存在,则先找依赖关系的编译命令,编译完成后返回到总命令中。
资料查找
windows资料 1.api可以通过msdn和一些api文档进行查找 2.汇编的例子: http://www.movsd.com, http://win32asm.cjb.net, http://asm.yeah.net