<<
>>

Компоновка программы

После устранения ошибок и получения объектного модуля можно приступать к сле- дующему этапу — созданию исполняемого (загрузочного) модуля, или, как еще называют этот процесс, к компоновке программы.
Главная цель этого этапа — пре- образовать код и данные в объектных файлах в их перемещаемое выполняемое отображение. Чтобы понять, в чем здесь суть, нужно разобраться, зачем вообще разделяют процесс создания исполняемого модуля на два этапа — трансляцию и компоновку. Это сделано намеренно, чтобы можно было объединять вместе мо- дули, написанные на одном и том же или на разных языках. Формат объектного файла позволяет при определенных условиях объединить несколько отдельно от- транслированных исходных модулей в один модуль. При этом в функции компо- новщика входит разрешение внешних ссылок (ссылок на внешние процедуры и пе- ременные) в этих модулях. Результатом работы компоновщика является создание загрузочного файла с расширением .ехе. После этого операционная система может загрузить такой файл в память и выполнить его.
Полный формат командной строки для запуска компоновщика довольно сло- жен (в этой и в большинстве следующих глав мы в основном будем использовать упрощенный формат): ТLINК [ключи] список_объектных_файлов [.имя_заrрузочного_модуля] [.имя_файла_карты] [,имя_файла_библиотеки] [,имя_файла_определений] [,имя_ресурсноrо_файла] Параметры командной строки для запуска компоновщика перечислены далее. ϋ ключи — необязательные параметры, управляющие работой компоновщика. Список наиболее часто используемых ключей приведен в приложении В (http: / / www.piter.com/download). Каждому ключу должен предшествовать символ - (де- фис) или / (слеш). При задании имен ключей имеет значение регистр символов. ϋ список_объектных_файлов — обязательный параметр, содержащий список ком- понуемых файлов с расширением .obj.
Файлы должны быть разделены пробе- лами или знаком + (плюс), например: ttiлk /v prog + mdf + fdr При необходимости имена файлов снабжают указанием пути к ним. И имя_заrрузочного_модуля — необязательный параметр, обозначающий имя фор- мируемого загрузочного модуля. Если оно не указано, то имя загрузочного мо- дуля будет совпадать с первым именем в списке имен объектных файлов. ii имя_файла_карты — необязательный параметр, наличие которого обязывает ком- поновщик создать специальный файл с картой загрузки. В ней перечисляются имена, адреса загрузки и размеры всех сегментов, входящих в программу. it имя_файла_библиотеки — необязательный параметр, который представляет со- бой путь к файлу библиотеки (.lib). Этот файл создается и обслуживается спе- циальной утилитой tlib.exe пакета TASM. Утилита позволяет объединить часто используемые подпрограммы в виде объектных модулей в один файл. В даль- нейшем можно просто указывать в командной строке tlink.exe имена нужных для компоновки объектных модулей и файл библиотеки, в котором следует искать эти подпрограммы. Если компонуется Windows-приложение, то на мес- те параметра имя_файла_библиотеки должно указываться имя библиотеки им- порта (глава 16). » имя_файла_определений — необязательный параметр, который представляет со- бой путь к файлу определений (.def). Этот файл используется при компоновке Windows-приложений (глава 16). ⅞ имя_ресурсного_файла — необязательный параметр, который представляет со- бой путь к файлу с ресурсами Windows-приложения (.rеs). Этот файл исполь- зуется при компоновке Windows-приложений (глава 16). Рассмотренный нами формат командной строки используется и для 32-разряд- ного варианта компоновщика tlink32.exe. Существует возможность задания параметров командной строки компоновщи- ка в текстовом файле. Для этого нужно создать файл с именем tlink.cfg (tliпkЗ2.сfд). При вызове компоновщика tlink.exe с параметром tlink.cfg (tliпkЗ2.ехе tlink32.cfg) ему будет передано содержимое файла tlink.cfg (tliпkЗ2.сfд). Например, текст кон- фигурационного файла tlink32.cfg для создания исполняемого файла Windows- приложения с отладочной информацией должен выглядеть так: /V /Тwе. Так же как и в случае команды tasm.exe, совсем не обязательно запоминать по- дробно синтаксис команды tlink.exe. Для того чтобы получить список ключей про- граммы tlink.exe, достаточно просто запустить ее без параметров. Для выполнения нашего примера запустим программу tlink.exe командной стро- кой вида tlink.exe /v ргg_6_l.obj В результате вы получите исполняемый модуль с расширением .ехе — prg_6_l.exe. Получив исполняемый модуль, не спешите радоваться. К сожалению, устране- ние синтаксических ошибок еще не гарантирует, что программа будет хотя бы за- пускаться, не говоря уже о ее правильной работе. Поэтому обязательным этапом процесса разработки является отладка.
<< | >>
Источник: В. И. Юров. Assembler. Учебник для вузов. 2-е изд. 2003

Еще по теме Компоновка программы:

  1. Программа Да и программа Нет
  2. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ
  3. Структура массово-информационной деятельности: сбор, обработка, компоновка, передача, восприятие, трансформация, хранение и использование массовой информации. Потенциальная, принятая и реальная информация. Семантический, синтаксический и прагматический аспекты массово-информационных текстов.
  4. Музыкальные концертные программы
  5. Г л а в а 9 О ПРОГРАММАХ
  6. Программа телевидения
  7. ПРОЕКТНЫЙ И ИСПОЛНИТЕЛЬНЫЙ УРОВНИ ПРОГРАММ
  8. ИЗНАЧАЛЬНО КОРОТКАЯ ПРОГРАММА
  9. ПЕРЕДАЧА, ПРОГРАММА, КАНАЛ
  10. Установка программы Астропроцессор ZET
  11. Г л ав а 30 ПРОГРАММЫ СТАРОСТИ. ДОЛГОЖИТЕЛИ
  12. Глава 3. ПРОГРАММА СОЦИОЛОГИЧЕСКОГО ИССЛЕДОВАНИЯ
  13. Первый запуск программы
  14. Глава 1. Программа и анкета
  15. Основная программа духовного очищения
  16. КОЛЛЕКТИВ НАУЧНЫЙ: ПРОГРАММА ИССЛЕДОВАТЕЛЬСКАЯ
  17. Программы по иностранным языкам
  18. О программе Астропроцессор ZET
  19. Настройка программы
  20. Г л а в а 6 ПРОГРАММЫ НЕВОЗМОЖНОСТИ