|
|
|
|
Использование командных файлов для макроассемблера MASM версий с 1.00 по 5
Командные файлы MASM2EXE.BAT и MASM2COM.BAT, показанные в
листингах A-1 и A-2, пригодны для использования с макроассемблером MASM версий с 1.00 по 4.00 и редактором связей LINK версий с
1.00 по 2.00.
Модификации командных файлов для более поздних версий макроассемблера MASM и редактора связей LINK приводятся в примечаниях
к листингам. Оба командных файла требуют наличия второго файла,
называемого AUTOLINK. Этот файл содержит четыре команды возврата
каретки и перевода строки и используются для решения проблемы,
касающейся редактора связей LINK (вплоть до версии 2.00): последний не может воспринимать пустые (неопределенные) параметры в
строке команды для опций распечатки (.МАР) и библиотек (.LIB).
Инициирование файла AUTOLINK для редактора связей LINK осуществляется путем добавления имени файла в строке команды с предшествующим ему знаком @. Знак "@" используется для совместимости
версий 2.00 операционной системы MS-DOS с предыдущими версиями,
поскольку более ранние версии не поддерживают переназначение
строки команд.
Использовать конкретный командный файл очень просто. Просто
введите имя данного командного файла с последующим именем файла,
подлежащего трансляции. Не включайте расширение, в то время как
расширение .ASM допускается. Если вы используете версию 2.00 или
выше операционной системы MS-DOS, и путь доступа PATH установлен
корректно, то драйверы, на которых хранятся связанные с ними файлы, не должны указываться.
Листинг A-1. MASM2EXE.BAT
----------------------------------------------------------------
echo off
if not exist %1.asm goto NOFILLER
rem
masm %1 %1 nul nul
rem
rem Используйте вышеприведенные строки только с версиями
rem MASM ниже 2.00
rem Используйте "masm %1.asm,,;" для макроассемблера MASM
rem версии 2.00 и выше
rem
link %1 @a:autolink
rem
rem Используйте вышеприведенные строки только с версиями
rem редактора связей LINK ниже 2.20;
rem Используйте "link %1.obj,,nul;" для редактора связей
rem LINK версии 2.20 и выше
rem
echo Удаление %1.obj
del %1.obj >nul:
echo Выполнено!
dir %1.*
goto END
rem
:NOFILERR
echo Файл %1.asm не был найден.
:END
----------------------------------------------------------------
|
Листинг A-2. MASM2COM.BAT
----------------------------------------------------------------
echo off
if not exist %1.asm goto NOFILERR
rem
masm %1 %1 nul nul
rem
rem Используйте вышеприведенные строки только с версиями
rem MASM ниже 2.00
rem Используйте "masm %1.asm,,;" для макроассемблера MASM
rem версии 2.00 и выше
rem
link %1 @a:autolink
rem
rem Используйте вышеприведенные строки только с версиями
rem редактора связей LINK ниже 2.20;
rem Используйте "link %1.obj,,nul;" для редактора связей
rem LINK версии 2.20 и выше
rem
echo Удаление %1.obj
del %1.obj >nul:
echo Создание %1.com из %1.exe (и удаление %1.exe)
exe2bin %1.exe %1.com >nul:
del %1.exe >nul:
echo Выполнено!
dir %1.*
goto End
rem
:NOFILERR
echo Файл %1.asm не был найден.
:END
----------------------------------------------------------------
|
Отметим, что некоторые строки в листинге A-1 и A-2 заканчиваются параметрами переназначения вывода. Если вы используете более раннюю версию по сравнению с 2.00 операционной системы
MS-DOS, то эти параметры должны быть удалены.
|
|