Jack架设WIN32汇编程序的开发环境

 
标 题: Jack架设WIN32汇编程序的开发环境
作 者: Jack Yang
时 间: 2007-02-25 15:18
1.         下载并安装Ultraedit
http://www.ultraedit.com/
我安装的版本是12.20b+1官方中文版,安装路径不重要。
 
2.         下载并安装MASM
我安装的是Version 9,安装路径为:D:/masm32
 
3.         make工具
http://211.90.241.130:22366/view.asp?file=53
压缩包中有两个make工具
nmake.exe是Microsoft (R) Program Maintenance Utility    Version 1.50
make.exe是MAKE Version 4.0 Copyright (c) 1987, 1996 Borland International
这两个make工具所支持的Makefile语法和常用的选项大同小异。
把nmake.exe和make.exe解压到Masm32安装目录的bin子目录下。
 
4.         编写一个用于设置环境变量的批处理文件var.bat
文件的内容如下:
@echo   off
rem  请根据 Masm32 软件包的安装目录修改下面的 Masm32Dir 环境变量!
set  Masm32Dir = D: Masm32
set  include = %Masm32Dir% Include ; %include%
set  lib = %Masm32Dir% lib ; %lib%
set   path = %Masm32Dir% Bin ; %Masm32Dir% ; % PATH %
echo   on
 
每打开一个新的命令行控制台,就要执行一次var.bat文件。
省力的做法是把环境变量添加到用户变量,或系统变量中去。
可以使用下列命令查看环境变量的设置情况:
C:/>echo %include%
C:/>echo %lib%
C:/>echo %path%
 
5.         编写makefile
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 *.obj
       del *.res
 
 
需要注意的地方:
1)        nmake默认将Makefile文件的第一条规则中的目标文件作为最终文件。例子中的最终文件就是Test.exe
2)        引用EXE或OBJS这些宏时一定要加上括号,如:$(EXE)、$(OBJS) 、$(RES)
3)        makefile的换行符是“/”,“/”后面不能再加上其它字符,包括注释和空格
4)        隐含规则中几个用来指定文件名的特殊预定义宏
$@ - 目标文件的全路径文件名
$*     - 目标文件的除去扩展名的全路径文件名
$?     - 所有源文件(依赖文件)的文件名
$<    - 源文件(依赖文件)的文件名
5)        显式规则的定义格式:
目标文件 : 依赖文件
    命令
6)        隐含规则的定义格式:
.源扩展名.目标扩展名:
    命令
 
用MASM编译和链接一个Win32汇编源程序常用的命令是:
ml /c /coff xx.asm
link /subsystem:windows xx.obj yy.lib zz.res (普通PE文件)
link /subsystem:console xx.obj yy.lib zz.res (控制台文件)
link /subsystem:windows /dll /def:aa.def xx.obj yy.lib zz.res (DLL文件)
 
6.         执行nmake.exe
nmake的常用选项如下:
/?    显示帮助信息
 /f      指定描述文件(makefile)的文件名
/x     把屏幕输出的信息存到一个文件中
/a      强制更新所有文件
/b     文件时间相等时也要更新文件
/d     make时显示文件新旧信息
/n     显示make时要执行的命令,但并不真正执行
/p     make是显示详细的信息
宏定义     用新的定义覆盖描述文件(makefile)中的宏定义
目标        指定建立描述文件(makefile)中描述的某个文件
如:
make clean
用于清除编译过程中产生的临时文件,即执行del *.obj和del *.res两条命令;
make test.obj
只编译test.asm生成test.obj文件;
make test.res
只编译test.rc生成test.res文件;
 
 
Win32汇编程序的开发调试过程:
编译源程序->切换到MS-DOS窗口->键入nmake编译->运行生成的可执行文件->切换到文本编辑器修改源程序........如此循环往复调试程序。
 
参考资料:
罗云彬的《Windows环境下32位汇编语言程序设计》(第二版)第二章
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值