2016-11-23 88 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'命令沒有太大意義。也許檢查錯誤級別? –