转Win32下汇编语言常用批处理文件

转Win32下汇编语言常用批处理文件
2009-05-17 15:16
Win32下汇编语言常用批处理文件


http://bavon.bokee.com/2771350.html
关键词: 汇编    批处理                                          
在Win32下进行汇编语言编程时,经常需要在汇编、资源转换和连接等一系列操作之后才可能生成可执行文件,而在这些过程中如果只是仅仅使用ML.EXE、RC.EXE、CVTRES.EXE和LINK.EXE来进行的话,繁多的参数输入也挺让人烦的。鉴于此,笔者写了几个批处理文件myMasm.bat、myCvt.bat和myLink.bat分别来执行汇编、资源转换和连接等操作,最后还写了一个能将上述操作同时完成的批处理文件myMake.bat。
为了使用该处理文件,有一些规则得统一。
1. ML.EXE、RC.EXE、CVTRES.EXE和LINK.EXE这几个文件必须放在目录\masm32\bin里面。
2. 如果你还有资源文件,其命名方式为你的源文件名字(不含扩展名)加“-RC.rc”。例如你的源文件为Hello.asm,则你的资源文件应该命名为Hello-RC.rc。
3. 使用这些批处理文件的时候,只需输入相应的批处理文件名加源文件名字(不含扩展名)。例如你要操作的文件有Hello.asm和Hello-RC.rc,那么如果执行下面的操作成功的话将会产生一个Hello.exe。所用操作如下:
mymasm hello
mycvt hello       (注:如果没有Hello-RC.rc,此操作可以省略)
mylink hello
或者你直接使用
mymake hello
也可以直接产生上述3个操作的结果,获得Hello.exe。


这4个批处理文件的内容如下所示,只需将其内容复制并按其文件名创建批处理文件。


REM myMasm.bat
@echo off
cls
if exist "%1.obj" del "%1.obj"
\masm32\bin\ml /c /coff /Fl "%1.asm" 
if errorlevel 0 dir "%1.*" 
if not exist "%1.obj" echo     Assembling Failed!
if exist "%1.obj" echo     Assembling Succeeded!
REM myMasm.bat




REM myCvt.bat
@echo off
cls
\masm32\bin\rc "%1-RC.rc"
\masm32\bin\cvtres /machine:ix86 "%1-RC.res"
if errorlevel 0 dir "%1.*" 
if not exist "%1-RC.obj" echo     Converting Failed!
if exist "%1-RC.obj" echo     Converting Succeeded!
REM myCvt.bat




REM myLink.bat
@echo off
cls
if exist "%1.exe" del "%1.exe"
if not exist "%1-RC.obj" goto nores
\masm32\bin\Link /SUBSYSTEM:WINDOWS "%1.obj" "%1-RC.obj"
goto done


:nores
\masm32\bin\Link /SUBSYSTEM:WINDOWS "%1.obj"


:done
if errorlevel 0 dir "%1.*" 
if not exist "%1.exe" echo     Linking Failed!
if exist "%1.exe" echo     Linking Succeeded!
REM myLink.bat




REM myMake.bat
@echo off
cls
:1_masm
if exist "%1.obj" del "%1.obj"
\masm32\bin\ml /c /coff /Fl "%1.asm" 
if not exist "%1.obj" echo     Assembling Failed!
if not exist "%1.obj" goto done


:2_convert
if not exist "%1-RC.rc" goto 3_link
if exist "%1-RC.obj" del "%1-RC.obj"
\masm32\bin\rc "%1-RC.rc"
\masm32\bin\cvtres /machine:ix86 "%1-RC.res"
if not exist "%1-RC.obj" echo     Converting Failed!
if not exist "%1-RC.obj" goto done


:3_link
if exist "%1.exe" del "%1.exe"
if not exist "%1-RC.obj" goto nores
\masm32\bin\Link /SUBSYSTEM:WINDOWS "%1.obj" "%1-RC.obj"
goto done
:nores
\masm32\bin\Link /SUBSYSTEM:WINDOWS "%1.obj"


:done
if errorlevel 0 dir "%1.*" "%1-RC.*"
if exist "%1.exe" echo     %1.exe was successfully made!
if not exist "%1.exe" echo     %1.exe was NOT made!
REM myMake.bat
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值