| |
В этой главе рассказывается об опциях командной строки, доступных во _всех_ версиях GNU-ассемблера, о специфических опциях для каждой платформы рассказано в главе 8.
Если вы вызываете as через компилятор GNU C (версия 2), то вы можете использовать опцию -Wa для сквознлй передачи аргументов ассемблеру. Аргументы ассемблера должны быть отделены один от другого (и -Wa) запятыми. Например:
gcc -c -g -O -Wa,-alh,-L file.c
посылает в стандартный вывод текст содержащий исходный код
высокого уровня и ассемблерный код.
Обычно нет нужды использовать механизм -Wa, поскольку многие опции командной строки автоматически передаются ассемблеру компилятором. (Вы можете вызвать драйвер GNU-компилятора с опцией -v, чтобы точно увидеть, какие опции передаются при каждом проходе компиляции, включая ассемблер.)
Эти опции позволяют осуществлять вывод результатов работы ассемблера в виде листинга. Просто -a приводит к выводу кода высокого уровня, ассемблера и символов в листинг. Вы можете использовать другие буквы для выбора специфических опций: -ah запрашивает листинг, включающий текст на языке высокого уровня, -al - на ассемблере, а -as запрашивает вывод таблицы символов. Создание листинга с включением текста на языке высокого уровня требует, чтобы у компилятора была установлена опция отладки типа -g, создание ассемблеpного листинга -al требует того же.
Используйте опцию -ad для пропуска директив, формирующих отладочную информацию в листинге.
Если вы указали одну из этих опций, то дальше вы можете осyществлять yпpаление выходным листингом и его появлением использyя диpективы .list, .nolist, .psize, .eject, .title, и .sbttl. Опция -an выключает всякую обработку директив управления форматом. Если вы не требуете вывода листинга при помощи одной из опций, начинающихся на -a, то директивы управления листингом не имеют никакого эффекта.
Буквы, следующие после -a, могут быть скомбинированы в одну опцию, например -aln.
Эта опция никак не влияет на работу ассемблера; она сохранена для совместимости с форматами командных строк других ассемблеров.
-f следует использовать, если ассемблерная программа создана некоторым компилятором, следующим определенным соглашениям. -f приводит к тому, что ассемблер не выполняет предварительную обработку последовательностей символов-разделителей и комментариев в ассемблерном тексте перед ассемблированием. Смотрите раздел 3.1 "Обработка препроцессором"
Предупреждение: если вы используете -f при работе с файлами, которые на самом деле должны бать обработаны препроцессором (например, если они содержат комментарии), то as будет работать некорректно.
Используйте эту опцию для добавления path к списку каталогов, в которых as ищет файлы, указанные в директиве.include (смотри раздел 7.28 [.include]). Вы можете использовать -I столько раз, сколько это нужно для включения различных путей. Поиск сначала всегда осуществляется в текущем рабочем каталоге, затем as ищет в каталогах, заданных с помощью опции командной строки -I в порядке их задания (слева направо)
AS иногда изменяет код, выданный для директив типа
.word SYM1-SYM2;
смотрите раздел 7.61[.word]. Вы можете использовать опцию -K для
выдачи предупреждений в таких случаях.
Метки, начинающиеся с L (только верхний регистр) называются "локальными метками". Смотрите раздел 5.3 "Имена символов". Обычно Вы не видите таких меток при отладке, потому что они предназначены для использования программами типа компиляторов, которые создают ассемблерный код, а не вами. Обычно и as и ld опускают такие метки, так что у вас не получиться нормальной отладки с ними.
Эта опция говорит as оставлять эти 'L...'-символы в объектном файле. Обычно, делая это Вы также должны указать линкеру ld, чтобы он сохранял символы с именами, начинающимися на 'L'.
По yмолчанию, локальной меткой является каждая метка, начинающаяся на L, но для каждой конкретной целевой платформе префикс может быть преопределен. На HPPA локальные метки начинаются с L$.
-M или --mri определяет режим совместимости с MRI. Это меняет синтаксис и обработку псевдо-операторов as для обеспечения совместимости с ассемблерами ASM68K или ASM960 (в зависимости от того, для какой целевой архитектуры был сконфигурирован as) фирмы Microtec Research. Точная структура MRI-синтаксиса не будет документирована здесь, смотрите руководства по MRI для дополнительной информации. Цель этой опции состоит в предоставлении возможности ассемблирования существующих программ на MRI-ассемблере используя as.
Совместимость с MRI не является полной. Некоторые операции MRI ассемблера зависят от формата его объектных файлов, и не могут быть использованы при использовании других форматов объектных файлов. Поддержка этого требует усовершенствования каждого формата объектных файлов индивидуально. Требуется следующее:
Есть еще несколько особенностей MRI ассемблера, которые не поддерживаются as, обычно из-за сложности или из-за их малой полезности. Некоторые из них возможно будут поддерживаться в следующих версиях.
При запуске as вседа имеется только один выходной объектный файл. По умолчанию он имеет имя a.out (или b.out, только для Intel 960). Эта опция (с помощью которой можно задать ровно одно имя файла) используется для задания другого имени для объектного файла.
Как бы ни был назван объектный файл, as перезапишет любой существующий файл с таким именем.
-R указывает as создавать объектный файл так, чтобы все данные из секции данных были помещены в секцию кода. Это делается в самый последний момент: ваши двоичные данные остаются теми же самыми, но части секции данных размещаются по-другому. Размер секции данных вашего файла равен нулю, поскольку все ее байты добавляются к секции кода. (Смотрите главу 4 [Части и Пеpемещения]).
Использование -R в принципе позволяет создавать более короткие адресные смещения Мы воздерживаемся от этого исключительно для совместимости с предыдущими версиями as. В будущем -R будет работать таким же образом.
Когда as сконфигурирован для генерации выходного объектного модуля в формате COFF, эта опция полезна только если вы используете имена секций .data и .text.
-R не поддерживается для всех платформ HPPA. Использование -R вызывает выдаюу предупреждающего сообщения as.
Опция --statistics используется для вывода двух характеристик ресурсов, использованных as: максимальный размер занятого пространства во время ассемблироания (в байтах) и общее время ассемблирования (время, которое процессор исполнял as, в секундах).
Вы можете узнать версию as, указав опцию -v (которую вы можете также указать как -version) в командной строке.
As никогда не выдаст вам предупреждения или сообщения об ошибке при ассемблировании выхода компилятора. Но на написанные людьми программы as часто выдает предупреждение о том, что было сделано некоторое допущение. Все такие ошибки направляются в стандартный файл ошибок. Если вы используете эту опцию, никаких предупреждений не выдается. Эта опция влияет только на предупреждения, но ничего не меняет в том, как as ассемблирует ваши файлы. Сообщения об ошибках, которые не позволяют продолжить ассемблирование, по-прежнему выдаются.
После сообщения об ошибке as обычно ничего не выводит. Если вы по некоторым причинам заинтересованы в получении объектного файла, несмотря на выданные as сообщения об ошибках, используйте опцию -Z. Тогда в случае ошибок as все равно продолжает работу и создает объектный файл после выдачи заключительного предупреждения в форме `N errors, M warnings, generating bad object file.'
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |