Win32ASM Минимальное приложение



         

Задача 5.


Делать EXE'шник, как всегда, мы будем в два этапа. Для начала возьмем исходник minimal.asm и "заведем" нашу мясорубку следующей командной строкой (каталог с исходником должен быть текущим): c:\masm32\bin\ml /c /coff minimal.asm

  Ключ /c говорит о том, что мы хотим только оттранслировать исходный файл, но не компоновать.
  Ключ /coff означает, что мы хотим создать объектный файл в формате COFF (Common Object File Format), стандартном для "Окон" формате объектных файлов (TASM, в отличие от MASM, создает объектные файлы в интеловском формате OMF (Object Module Format), который мелкософтовский линкер запросто конвертирует в COFF).
  Теперь, если вы правильно набрали исходник, в той же папке, что и minimal.asm, должен появиться объектный файл minimal.obj.
  Далее приступим к компоновке экзешника. Затаиваем дыхание и дергаем за стартер:

c:\masm32\bin\link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib minimal.obj

  Ключ /SUBSYSTEM с параметром WINDOWS говорит линкеру о том, что мы собираемся собрать экзешник для подсистемы Windows. Другие возможные значения: CONSOLE - если мы собираемся делать программу с текстовым интерфейсом а-ля ДОС, NATIVE - если драйвер устройства, и POSIX - если мы собираемся писать программы, ориентированные на стандарты POSIX и более или менее переносимые под разные Юниксы (для которых эти стандарты и писались).
  Ключ /LIBPATH указывает путь к библиотекам импорта, которые нам обязательно необходимо прилинковать к программе, если мы хотим использовать возможности, предоставляемые не только процессором, но и операционной системой. Подробнее о том, что из себя представляют библиотеки импорта, мы поговорим чуть позже.
  Если вы все сделали правильно, то в нашей папке, наряду с исходным и объектными, должен появиться еще и третий файл - исполнимый. Возрадуемся же этому и перейдем к следующему пункту повестки дня - разборке исходника. Неужели вам не интересно знать, что означают эти загадочные строчки в minimal.asm?

 




Содержание  Назад  Вперед