Ассемблер и программирование для IBM PC



       

ГЛАВА 4. Ассемблирование и выполнение программ - часть 6


Ассемблер для IBM PC. Глава 4 84

КОМПАНОВКА ПРОГРАММЫ ------------------------------------------------------------

Если в результате ассемблирования не обнаружено ошибок, то cледующий шаг - компановка объектного модуля. Файл EXASM1.OBJ содержит только машинный код в шестнадцатеричной форме. Так как программа может загружаться почти в любое место памяти для выполнения, то ассемблер может не определить все машинные адреса. Кроме того, могут использоваться другие (под) программы для объединения с основной. Назначением программы LINK является завершение определения адресных ссылок и объединение (если требуется) нескольких программ. Для компановки ассемблированной программы с дискеты, вставте дискету DOS в дисковод A, а дискету с программой в дисковод B. Пользователи винчестерского диска могут загрузить компановщик LINK прямо с дисковода C. Введите команду LINK и нажмите клавишу Return. После загрузки в память, компановщик выдает несколько запросов (аналогично MASM), на которые необходимо ответить:

Запрос компановщика Ответ Действие

Object Modules [.OBJ]: B:EXASM1 Компанует EXASM1.OBJ Run file [EXASM1.EXE]: B: Создает EXASM1.EXE List file [NUL.MAP]: CON Создает EXASM1.MAP Libraries [.LIB]: [Return] По умолчанию

Первый запрос - запрос имен объектных модулей для компа новки, тип OBJ можно опустить. Второй запрос - запрос имени исполнимого модуля (файла), (по умолчанию A:EXASM1.EXE). Ответ B: требует, чтобы компановщик создал файл на дисководе В. Практика сохранения одного имени (при разных типах) файла упрощает работу с программами. Третий запрос предполагает, что LINK выбирает значение по yмолчанию - NUL.MAP (т.е. MAP отсутствует). MAP-файл содержит таблицу имен и размеров сегментов и ошибки, которые обнаружит LINK. Типичной ошибкой является неправильное определение сегмента стека. Ответ CON предполагает, что таблица будет выведена на экран, вместо записи ее на диск. Это позволяет сэкономить место в дисковой памяти и сразу просмотреть таблицу непосредственно на экране. В нашем примере MAP-файл содержит следующую информацию:




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