Операция редактирования связей
Операция редактирования связей
Рассмотрим теперь операции, с помощью которых описанные выше
программные модули были объединены в один исполняемый модуль.
Ассемблирование программ выполняется с помощью команд, описанных в
предыдущем разделе:
B:>A:MAS FIG5=13,,,;
B:>A:MASM FIG5=14,,,;
При этом получается два объектных модуля FIG5=13.OBJ и
FIG5=14.OBJ. Для объединения этих модулей вызывается программа
LINK. На Фиг. 5.15 приведены операции, с которых начинается работа
программы LINK.
В данном примере предполагается, что дискета с DOS установлена
в дисководе A:, рабочая дискета - в дисководе B:, и дисковод B:
выбирается по умолчанию. После запуска программа LINK запрашивает
пользователя, для каких объектных файлов следует выполнить
редактирование связей. Имена файлов вводятся без указания типа
.OBJ. Если связываемых модулей больше одного, то их имена вводятся
через разделитель "+". В данном примере выполняется редактирование
связей для модулей FIG5=13 и FIG5=14.
-------------------------------------------
A>LINK
IBM Personal Computer Linker
Version 1.10 (c)Copyright IBM Corp 1982
Object Modules [.OBJ]: B:FIG5_13+B:FIG5_14
RunFile [A:FIG5_13.EXE]: B:
List File [NUL.MAP]: B:
Libraries {.LIB]:
A>
-------------------------------------------
Фиг. 5.15 Выполнение редактирования связей
Модули связываются в том же порядке, в каком их имена
передаются программе LINK. В данном случае программа FIG5=13
предшествует программе FIG5=14. Перечисление модулей в обратном
порядке привело бы к такому же обратному порядку их расположения в
итоговом модуле. Как правило, порядок формирования программы
безразличен. Единственное исключение делается для входной точки
программы.
Следующий запрос редактора связей относится к имени
исполняемого, или рабочего, файла. По умолчанию ему присваивается
имя первого из объектных модулей с расширением .EXE. Вводя другое
имя, можно изменить имя файла, но не его расширение .EXE.
Далее запрашивается имя файла для хранения карты связей.
Допускается любое имя, однако в режиме по умолчанию формирование
карты не производится. В нашем примере ввод символа B: является
указанием редактору связей записать карту связей на дисководе B:.
Редактор связей выбрал для этого файла имя FIG5=13.MAP. Полученный
в результате операции связывания файл FIG5=13.MAP приводится на
Фиг. 5.16 и будет рассмотрен в следующем параграфе.
Последний запрос редактора связей касается библиотек программ,
которые могут быть включены в полученный при связывании модуль. В
случае некоторых языков высокого уровня на этом шаге может
возникнуть необходимость указать имя библиотеки рабочих программ.
Для программ на языке ассемблера такой необходимости нет.