0

さまざまなフォルダーに多数の .asm ファイルがあります。通常、1 つのファイルをコンパイルしてリンクするには、次の 2 つのコマンドを使用します。

tasm /zi FILENAME
tlink /v FILENAME

同じコンパイル方法を使用したいのですが、大量の .asm ファイルをすべて異なるフォルダーに配置し、それぞれに同じ名前の .exe ファイルを作成します。

これを一度に行うために書くことができる行はありますか?私はそれを行うために短いプログラムを書く必要がありますか? そしてどうやって?

最後に、DOS-BOX 経由でドラッグ アンド プレイできる .exe ファイルが必要です。

ありがとう、ナオル。

4

1 に答える 1

2

TASMWindows 内で実行する場合TLINKは、Windows バッチ ファイルを使用できます。

@ECHO OFF
SETLOCAL enableextensions enabledelayedexpansion

rem adjust the following lines to your needs
rem path to tasmx.exe and tlink.exe
PATH C:\Turbo.DOS\TASM.5\BIN;%PATH%
rem this directory and subdirectories
PUSHD C:\TMP\Tasm

FOR /R %%i IN (*.asm) DO (
    SET P=%%~psni
    DEL !P!.obj !P!.exe !P!.com !P!.map 2>NUL
    ECHO !P!
    tasmx.exe /t !P!,!P!.obj >NUL
    IF EXIST !P!.obj (
        tlink.exe /x !P! >NUL
    )
)

POPD

FORDOSBoxには命令がありません。アセンブルとリンクに DOSBox を使用する必要がある場合(64 ビット Windows)、DOSBox 用のバッチ ファイルをビルドするバッチ ファイルを Windows でビルドします。

@ECHO OFF
SETLOCAL enableextensions enabledelayedexpansion

rem adjust the following lines to your needs
rem this directory and subdirectories
PUSHD C:\TMP\Tasm

>dosbox.bat     echo @ECHO OFF
>>dosbox.bat    echo IF EXIST X:NUL mount -u X ^>NUL
>>dosbox.bat    echo MOUNT X X:\ ^>NUL
>>dosbox.bat    echo X:

FOR /R %%i IN (*.asm) DO (
    SET P=%%~sni
    SET D=%%~psi
    DEL !P!.obj !P!.exe !P!.com !P!.map 2>NUL
    ECHO !P!
    >>dosbox.bat echo CD !D!
    >>dosbox.bat echo tasm.exe /t !P!
    >>dosbox.bat echo IF EXIST !P!.obj tlink.exe /x !P!
)

POPD

このバッチ ファイルを Windows で実行します。dosbox.batDOSBox で実行できるファイルが得られます。DOSBoxへのパスは既にわかっているTASM.EXEと思います。TLINK.EXE

于 2014-05-23T10:14:32.300 に答える