2016-11-23 61 views
0

我目前正在学习汇编程序,他们使用的版本相当老,并且由通过DosBox运行的3个文件,ASM.exe,LINK.exe,TD.EXE组成。 基本上,我需要做的三个命令:使批处理文件编译汇编程序

asm [filename].asm; 
link [filename].obj; 
td [filename] 

,以编译,不是我要让我键入一个批处理文件:run [filename]

所以它只会使用文件名和编译一切。

任何人都可以帮忙,或给我一个暗示,在哪里寻找这样的信息?

+0

尽管与您的问题无关,也许您可​​能对[本主题](http:// www。 dostips.com/forum/viewtopic.php?f=3&t=6281),其中包括一个用批处理编写的基本8086汇编程序_“可用作学习汇编语言基础的教育工具”_。使用这个批处理文件,您可以编写简单的汇编源代码,并生成可执行的16位DOS .com文件,无需任何汇编程序或链接器! **':-)'** – Aacini

回答

4

如果你只给不带扩展名的文件名的批处理看起来是这样:

IF [%1]==[] (
    echo WRONG SYNTAX: run ^<filename^> 
    exit /b 1 
) 
asm %1.asm 
IF ERRORLEVEL 1 (
    echo ERROR: Could not assemble file. Abandonned execution! 
    exit /b 1 
) 
link %1.obj 
IF ERRORLEVEL 1 (
    echo ERROR: Could not link %1.obj. Abandonned execution! 
    exit /b 1 
) 
td %1 

由于@LotPings在发表的评论mentionned,允许路径处理的扩展将无法正常工作。在开始执行之前检查参数的存在以及开始每个步骤之前的错误级别也更安全David wohlferd建议

+5

DosBox模拟x86处理器以及真正的Dos。只有像4dos这样的不同的shell才能安装cmd,但是这样排除了AFAIK的修饰符〜dpnxsz – LotPings

+1

非常感谢。我没有想到这个!我调整了我的答案 –

+1

如果'asm'命令失败,运行'link'命令没有太大意义。也许检查错误级别? –