Создание загрузочного модуля (компоновка программы)
После того как мы устранили ошибки и получили объектный модуль, можно приступать к следующему шагу — созданию исполняемого (загрузочного) модуля (к компоновке программы). Главная цель этого шага — преобразовать код и данные в объектных файлах в их перемещаемое выполняемое отображение.
Чтобы понять, в чём здесь суть, нужно разобраться, зачем вообще разделяют процесс создания исполняемого модуля на два шага — трансляцию и компоновку. Это сделано для того, чтобы можно было объединить вместе несколько отдельно оттранслированных исходных модулей в один модуль. При этом в функции компоновщика входит разрешение внешних ссылок (ссылок на процедуры и переменные) в этих модулях.
Результатом работы компоновщика является создание загрузочного файла с расширением .exe. После этого операционная система может загрузить такой файл в память и выполнить его.
Полный формат командной строки для запуска компоновщика достаточно сложен, но для начала вполне достаточно использования уплощенного формата:
TLINK [опции] список_объектных_файлов [,имя_загрузочного_модуля][,имя_файла_карты][,имя_файла_библиотеки]
Здесь:
опции — необязательные параметры, управляющие работой компоновщика.
список_объектных_файлов — обязательный параметр, содержащий список компонуемых файлов с расширением .obj. Файлы должны быть разделены пробелами или знаком “+”.
Например, TLINK/v prog + mdf + fdr
имя_загрузочного_модуля– необязательный параметр, обозначающий имя целевого исполняемого модуля. Если оно не указано, то имя загрузочного модуля будет совпадать с первым именем объектного файла из списка объектных файлов;
имя_файла_карты — необязательный параметр, наличие которого обязывает компоновщик создать специальный файл с картой загрузки. В ней перечисляются имена, адреса загрузки и размеры всех сегментов, входящих в программу;
имя_файла_библиотеки — необязательный параметр, который представляет собой путь к файлу библиотеки. Этот файл с расширением .lib создается и обслуживается специальной утилитой tlib.exe из пакета TASM. Данная утилита позволяет объединить часто используемые подпрограммы в виде объектных модулей в один файл.
Для того чтобы получить список опций программы tlink.exe, достаточно просто запустить её без указания параметров.
Если программа одна, то для получения загрузочного модуля достаточно ввести в командную строку:
TLINK/v prog.obj,,
Опция /v в команде указывает на необходимость сохранения отладочной информации в исполняемом файле и используется в случае отладки программы в среде отладчика. В результате компоновки получим исполняемый модуль prog.exeи файл карты памяти prog.map.