用批处理和Path全局提高MASM编译效率
Posted in app on 12/12/2008 11:27 上午 by tunpishuang废话:
初学汇编,在上实验课的时候,发现根本没有VC这样的IDE那样的傻瓜。编译,连接,运行都只需要点个按钮搞定。
当然做实验,老师教我们用M$的MASM 5.0,用gcc是不可能,也是不现实的。不过在老师实验演示的时候,发现从编译到真正的运行程序是一个重复劳动的一个过程。
老方法:
比如有个1.asm的汇编源代码需要编译,过程是:
1.把masm编译器拷贝到1.asm所在目录
2.masm 1.asm ,按三次回车
F:\asm-test>masm 1.asm
Object filename [1.OBJ]://直接回车表示:默认建立和1.asm同名目标文件。
Source listing [NUL.LST]://直接回车表示:不建立列表文件
Cross-reference [NUL.CRF]://直接回车表示:不建立交叉参考文件
F:\asm-test>link 1.obj
Run File [1.EXE]://直接回车表示:建立默认和目标文件同名exe文件
List File [NUL.MAP]://直接回车表示:不建立map文件
Libraries [.LIB]://直接回车表示:不建立库文件
4.最后运行1.exe
5.如果程序需要修改,1-4的步骤重复!
新方法:
如果我们直接用逗号分割所有的参数,就可以一次完成编译,连接操作
还是以1.asm为例子,可以这样输入命令:
masm.exe 1.asm,1.obj,nul.lst,nul.crf
生成1.obj,然后:
link 1.obj,1.exe,nul.map,,
两步搞定,不过谁丫儿的觉得这有效率呢?
还好我们有批处理,新建个文本文件,内容如下,保存为mk.bat
masm.exe %1.asm,%1.obj,nul.lst,nul.crf
link %1.obj,%1.exe,nul.map,,
del /q %1.obj
以后比如需要编译一个叫test.asm的程序,你只需要进入mk.bat目录
然后mk test (不要后缀名)就搞定鸟~~~
附加小技巧:
是不是每次复制masm编译包到源代码目录很不爽呢?
我们可以这样,比如我的masm编译包目录在D:\masm
把D:\masm还有我们的mk.bat添加到PATH环境变量就可以了,不用重新启动机子,即可生效。
可以通过cmd下echo %PATH%查看是否生效。
以后在cmd任何目录下都可以执行masm.exe ,link.exe,mk了~~






