Рассмотрим теперь операции, с помощью которых описанные выше программные модули были объединены в один исполняемый модуль. Ассемблирование программ выполняется с помощью команд, описанных в предыдущем разделе:

      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 и будет рассмотрен в следующем параграфе.

Последний запрос редактора связей касается библиотек программ, которые могут быть включены в полученный при связывании модуль. В случае некоторых языков высокого уровня на этом шаге может возникнуть необходимость указать имя библиотеки рабочих программ.  Для программ на языке ассемблера такой необходимости нет.