Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
40
Добавлен:
01.05.2014
Размер:
206.19 Кб
Скачать

Выходные (объектные) файлы

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

По умолчанию его имя есть a.out. Для того чтобы задать другое имя, используйте опцию-o. Как правило, имена объектных файлов имеют расширение.o.

Предупреждения и сообщения об ошибках

Ассемблер может выдавать сообщения об ошибках и предупреждения в файл стандартного протокола, т.е. по умолчанию — на терминал. Этого не должно происходить, если ассемблер вызывается автоматически драйвером компиляции gcc. Предупреждающие сообщения информируют пользователя о предположениях, сделанных ассемблером в случае обнаружения в программе не фатальных ошибок или нарушений, для продолжения обработки. Сообщения об ошибках выдаются в том случае, если дальнейшая обработка программы невозможна.

Сообщения об ошибках и предупреждения имеют следующий формат:

имя_файла:NNN:Текст_сообщения

где NNN— номер строки. Значения первых двух полей определяются директивами ассемблера:

.app-file файл

.file файл

Задает текущее логическое имя файла, используемое в диагностических сообщениях

.line номер_строки

.ln номер_строки

Задает текущий номер строки, от которого ведется отсчет строк для выдачи диагностических сообщений

если они имеются в исходной программе. Если такие директивы отсутствуют, то в качестве имени_файлаиспользуется имя текущего физического файла как оно задано в командной строке, а полеNNN содержит порядковый номер строки в файле.

Общие опции командной строки

В этой главе описываются опции ассемблера, общие для всех платформ.

Если ассемблер вызывается посредством драйвера компиляции gcc, то для передачи аргументов командной строки ассемблера можно воспользоваться опцией -Wa. Аргументы командной строки ассемблера должны быть отделены друг от друга (и от‑Wa) запятыми, например, команда:

gcc -c -g -O -Wa,-alh,-L file.c

обеспечивает выдачу на стандартный вывод листинга с программным кодом на языке высокого уровня и на языке ассемблера.

Как правило, опцию -Waиспользовать не приходится, поскольку многие опции компиляции автоматически передаются ассемблеру драйвером компиляцииgcc. (Узнать, какие именно опции передаются каждому проходу обработки входных файлов — препроцессору, компилятору, ассемблеру, редактору связей — можно, запустивgccс опцией-v.)

-a[dhlns]

Включает листинг одним из нескольких способов. Опция -a без дополнительных букв соответствует комбинации-ahls, т. е. задает выдачу полного листинга — на языке высокого уровня, на языке ассемблера и таблицу символов. Дополнительные буквы определяют другие возможные режимы выдачи листинга:

-ad

Исключает директивы отладки.

-ah

Включает выдачу листинга на языке высокого уровня.

-al

Включает выдачу листинга на языке ассемблера.

-an

Исключает обработку форм печати.

-as

Включает листинг таблицы символов.

=файл

Устанавливает имя файла для выдачи листинга.

Можно употреблять произвольные комбинации дополнительных букв. Например, -aln задает ассемблерный листинг без обработки форм. Элемент=файл, если он нужен, включается всегда последним.

Выдачу листинга можно контролировать дополнительно при помощи директив ассемблера .list(включить листинг),.nolist (выключить листинг),.psize строкистолбцы (размер страницы),.eject(конец страницы),.titleзаголовок,.sbttlподзаголовок. Если опция-a не задана, то перечисленные директивы игнорируются.

-D

Игнорируется. Включена для обеспечения совместимости с командными файлами, написанными для других ассемблеров.

--defsymсимвол=значение

Определяет символ, задавая для него указанноезначение, перед обработкой входного файла. Значение должно быть целочисленной константой. Как и в языке Си, префикс`0x'означает, что далее следует шестнадцатеричное значение. Префикс`0' предваряет восьмеричное значение.

-f

Ускоренный режим обработки ассемблерной программы, за счет исключения препроцессирования пробельных символов и комментариев в исходной программе. Эта опция используется, если ассемблерный код сгенерирован (надежным) компилятором.

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

-I маршрут

Добавляет маршрут к списку каталогов, в которых asбудет искать файлы, заданные директивами.include. Опция-Iможет употребляться многократно, если нужно включить несколько каталогов. Текущий рабочий каталог всегда просматривается в первую очередь. Затем просматриваются каталоги, заданные при помощи опций-I, в том порядке, как они заданы в командной строке.

--help

Печатает сводку опций командной строки и завершает работу ассемблера.

-J

Не выдавать предупреждающих сообщений о переполнении при вычислениях со знаковыми величинами.

-K

В некоторых случаях asизменяет код, соответствующий директивам.word символ1-символ2, которые часто генерируется компиляторами для реализации таблиц переходов. Опция-Kзаставляет ассемблер выдавать предупреждающие сообщения в таких случаях.

-L

Оставляет в таблице символов локальные символы, имена которых начинаются с буквы 'L'.

Обычно такие символы "не видны" при отладке, поскольку они играют служебную роль при работе компиляторов, генерирующих ассемблерный код. По умолчанию, и as, иldудаляют такие символы, так что при отладке они не доступны.

-M

--mri

Включает режим совместимости с синтаксисом MRI.

-oвыходной_файл

Задает имя выходного файла. По умолчанию результат работы ассемблера имеет имя a.out. Если файл с заданным именем существует,asуничтожает его содержимое.

-R

Заставляет as писать информацию секцииdataв секциюtext. Это делается в последний момент — бинарные данные те же самые, но данные, обычно размещаемые в секцииdata, дописываются в конец секцииtext. Размер секцииdataустанавливается равным 0.

--statistics

Печатает сведения о ресурсах, затраченных ассемблером: максимальное использованное пространство памяти (в байтах) и время работы (в секундах ЦП).

-v

Печатает номер версии ассемблера.

-version

--version

Печатает номер версии ассемблера и завершает его выполнение.

-W

Подавляет выдачу предупреждающих сообщений.

-w

Игнорируется

-x

Игнорируется

-Z

Заставляет asпродолжать генерацию выходного файла даже в случае ошибок.

--|файлы...

Стандартный ввод или имена входных файлов для ассемблера.

Соседние файлы в папке Еще материалы