На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 12 / Использование командных файлов для макроассемблера MASM версий с 1.00 по 5 Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Использование командных файлов для макроассемблера 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, то эти параметры должны быть удалены.


НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz