Как прописать командный файл
Программу на Ассемблере можно набивать в обычном текстовике NotePad, файл которой сохраняется с расширением asm. Для того, чтобы сформировать exe-файл, вам необходимо произвести трансляцию, компоновку и загрузку программы в отладчик. Поскольку рассматривается программирование в 32-битном режиме, то и программы, обрабатывающие файл должны быть соответственными. Кроме того, вам потребуется библиотека Import32.lib. Найти эти файлы не должно составить труда. Некоторые из них наверняка имеются у вас на винте. Например, отладчик TD32.exe и компоновщик tlink32.exe входят в стандартную поставку Borland C++. В этот продукт также входят аналогичные файлы для 16-битного режима.
Ввиду выше изложенных аргументов ми получим следующий код командного файла:
tasm32 /ml /zi Project.asm
pause
if ErrorLevel 1 goto m1
tlink32 /v Project.obj import32.lib
pause
if ErrorLevel 1 goto m1
td32 Project.exe
:m1
Этот код тоже наберите в блокноте и сохраните с расширением bat. Допустим, пусть это будет ASM.bat. Наш программный файл, содержащий ассемблерный код, как вы видите должен носить имя Project.asm.
Прокомментирую код командного файла. Строка if ErrorLevel 1 goto m1 осуществляет переход на метку m1, расположенную в конце, в том случае, если исполняемая программа возвращает 1, то есть, если произошла ошибка. Этот перехват помогает обнаружить ошибки на этапе компиляции и компоновки. Флаг /ml обозначает регистро - чувствительную компоновку. Флаг /zi включает полную информацию для отладчика, а флаг /v нужен для того, чтобы включить в проект полную информацию.
Приведенный bat-файл работоспособен, но в нем есть, одно неудобство - командный файл работает только с файлом, который носит имя Project.asm. А чтобы исправить это обстоятельство, необходимо самую малость - все вхождения Project.[asm, obj, exe] заменить на %1. Вот как будет выглядеть командный файл теперь:
tasm32 /ml /zi %1
pause
if ErrorLevel 1 goto m1
tlink32 /v %1 import32.lib
pause
if ErrorLevel 1 goto m1
td32 %1
:m1
Пару слов о том, как пользоваться этим командным файлом... Просто кликнув по bat-файлу мышкой, желаемого результата вы не получите. Для компиляции необходимо воспользоваться, к примеру, Far'ом. Команда для компиляции вышеописанного Project.asm будет выглядеть следующим образом:
ASM.bat Project.asm
Здесь, в качестве параметра, передается имя файла, который необходимо откомпилировать.
С командным файлом разобрались. Теперь произведем непосредственно компиляцию программы. Поместите упомянутые выше файлы в один каталог, как это показано ниже, и запускайте bat-файл.
Если все сделано правильно, то, после компиляции должен создаться exe-файл, наряду с map, tr2, td2 и obj.
|