Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Н. Н. Трушин. Системные программные средства ЭВМ и сетей. Методические указания по выполнению лабора.pdf
Скачиваний:
63
Добавлен:
22.01.2014
Размер:
1.14 Mб
Скачать

84

Параметр LST-файл определяет имя файла листинга, в который будет записан протокол трансляции программы. Этот файл имеет текстовый формат.

Параметр CRF-файл позволяет создать файл перекрестных ссылок с

расширением CRF. Если имя этого файла в командной строке не указано, то оно будет таким же, как имя исходного файла.

Если требуется отменить создание какого-либо выходного файла, то вместо его имени можно использовать имя фиктивного файла NUL.

Кроме указанных параметров в командной строке запуска компилятора могут быть указаны параметры, начинающиеся с символа "/" и называемые ключами или переключателями. Наиболее важными переключателями определяются следующие вспомогательные функции компилятора:

/c – в протокол трансляции включить таблицу перекрестных ссылок; /e – включить эмуляцию арифметического сопроцессора в случае его

отсутствия в компьютере;

/h – вывести на экран монитора краткую справочную информацию; /ipath – определить маршрут path для поиска файлов, включаемых в

исходный текст программы;

/l – создать файл протокола трансляции стандартного формата; /la – создать файл протокола трансляции полного формата; /ml – различать символы верхнего и нижнего регистров;

/mu – преобразовать символы идентификаторов программы к верхнему регистру;

/mx – различать символы верхнего и нижнего регистров для символов типа PUBLIC и EXTERN;

/n – исключить из протокола трансляции таблицы символов;

/t – отказаться от вывода сообщений компилятора в случае успешной трансляции;

/w1 или /w2 – разрешить вывод предупреждающих сообщений компилятора (1 – серьезного уровня, 2 – советующего уровня);

/w0 – запретить вывод предупреждающих сообщений компилятора; /x – в протокол трансляции включить директивы условной компиляции;

/zd – в объектный файл включить информацию о номерах строк исходной программы (это необходимо для работы программы-отладчика

CODEVIEW);

/zi – в объектный файл включить полный объем отладочной информации.

Приведем пример командной строки запуска компилятора MASM:

MASM /la /zi LABRAB, , ,NUL

В данном примере происходит компиляция программы из файла LABRAB.ASM, при этом создается объектный файл с именем LABRAB.OBJ и файл протокола трансляции (файл листинга) LABRAB.LST. Файл перекрестных

85

ссылок не создается. Задан переключатель /zi, с помощью которого в объектный файл будет внесена дополнительная информация, необходимая для последующей отладки программы. С помощью переключателя /la задается полный формат протокола трансляции.

Запуск компилятора MASM некоторых версий возможен также без указания каких-либо исходных данных в командной строке. В этом случае компилятор будет работать в диалоговом режиме и имена входных и выходных файлов должны вводиться пользователем с клавиатуры. Диалог будет иметь примерно следующий вид:

Source Filename [.ASM]: labrab

Object Filename [labrab.obj]:

Source Listing [NUL.LST]:

Cross Reference [NUL.CRF]:

В прямоугольных скобках указываются имена файлов, предлагаемые компилятором по умолчанию, которые будут приняты после нажатия клавиши Enter. Выходные файла с именем NUL не создаются. В качестве имени выходного файла можно указать PRN и направить файл на печать. Компилятор допускает обработку многих файлов, и в этом случае можно задать шаблон групповой операции с файлами (например, *.ASM) или перечислить имена файлов через знак +. Если все имена исходных файлов не помещаются на одной строке, то ввод имен можно продолжить, поставив символ + в последнюю позицию текущей строки. Пользователь может отказаться от ввода имен файлов с помощью нажатия комбинации клавиш Ctrl+Break или Ctrl+C и тем самым прекратить работу компилятора.

Компоновщик LINK.EXE также запускается из командной строки операционной системы и имеет следующий формат запуска:

LINK[.EXE] [/парам] OBJ-файл [,EXE-файл] [,MAP-файл] [,LIB-файл]

На рис. 2 приведена схема работы компоновщика LINK с входными и выходными файлами.

Параметры в командной строке запуска компоновщика разделяются запятыми. Если в командной строке присутствует точка с запятой, то все следующие за ней параметры будут игнорироваться.

Параметр OBJ-файл – это обязательный входной параметр, который определяет исходный объектный файл. Для этого файла можно задавать только имя, и в этом случае будет подразумеваться расширение имени OBJ. Компоновщик допускает компоновку многих файлов, и при этом в командной строке можно задать шаблон групповой операции с файлами, например *.ASM.

Необязательный параметр LIB-файл также является входным. Он определяет имя библиотеки объектных подпрограмм, необходимых

86

компоновщику для разрешения внешних ссылок, которые могут встретиться в исходной программе.

Объектная

 

 

 

 

 

 

 

Исполняемая

программа

 

 

 

 

 

 

 

программа

*.OBJ

 

 

 

 

 

 

 

*.EXE или *.COM

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Компоновщик

 

 

 

 

 

 

 

 

(редактор связей)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Библиотека

 

 

 

 

 

 

 

План исполняемой

объектных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

программы

подпрограмм

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*.MAP

*.LIB

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2. Схема работы компоновщика с файлами

Остальные параметры компоновщика являются выходными. Параметр EXE-файл определяет имя исполняемого файла с расширением EXE или COM. Если имя выходного файла не задано, то компилятор создаст исполняемый файл с тем же именем, что и исходный объектный файл. Если в процессе компоновки будет обнаружена ошибка, то исполняемый файл не создается.

Параметр MAP-файл определяет имя файла, который по умолчанию всегда создается компоновщиком. Этот файл имеет текстовый формат и содержит протокол компоновки исходной программы. Протокол включает список сегментов программы, стартовые адреса, сообщения о предупреждениях (warning) и ошибках (error), которые возникли в процессе компоновки исходной программы. Если имя MAP-файла не задано, то компилятор создаст данный файл с тем же именем, что и исходный объектный файл.

Кроме указанных параметров в командной строке запуска компоновщика могут быть указаны переключатели, начинающиеся с символа "/". Приведем наиболее существенные переключатели компоновщика:

/? или /help – вывести на экран монитора краткую справочную информацию;

/batch – отменить диалоговый режим работы компоновщика; /codeview – внести в исполняемый файл отладочную информацию с

целью отладки его с помощью отладчика CODEVIEW;

/exepack – создать более компактный исполняемый файл за счет удаления из него избыточной информации. Этот режим рекомендуется устанавливать при компоновке отлаженного варианта программы;

/information – включить вывод информации о ходе компоновки программы;

/linenumbers – включить в протокол компоновки номера строк и адреса исходных команд и операторов;