Используя ассемблер

В этой главе описываются, как работать as ассемблер, производящий объектный файл из одного или более файлов исходного кода ассемблера.

Синтаксис команды

Для выполнения ассемблера введите следующую команду в оболочке:

as [ option ] ... [ file ] ...

Можно указать один или несколько параметров командной строки. Эти ассемблерные опции описаны в Ассемблерных Опциях.

Можно указать один или несколько файлов, содержащих исходный код ассемблера. Если никакие файлы не указаны, as использует стандартный ввод (stdin) для сборочного исходного ввода.

Ассемблерные опции

Следующие параметры командной строки распознаны ассемблером:

- o

-o name

Параметр имени после -o используется в качестве имени as выходной файл, вместо a.out.

--

--

Используйте стандартный ввод (stdin) для сборочного исходного ввода.

- f

-f

Быстро; никакая потребность работать app (ассемблерный препроцессор). Эта опция предназначается для использования компиляторами, производящими ассемблерный код в строгом «чистом» формате, указывающем точно, куда может пойти пробел. app препроцессор должен быть выполнен на рукописных сборочных файлах и на файлах, предварительно обработанных cpp (препроцессор C). Когда ассемблерные файлы собраны с помощью, это обычно необходимо cc(1) команда, автоматически выполняющая препроцессор C на сборочных исходных файлах. Ассемблерные полосы препроцессора избыточные пробелы, поворачивает каждый символ, окруженный единственными кавычками в десятичную константу, и поворачивает случаи:

# number filename level

в:

.line number;.file filename

Ассемблерный препроцессор может также быть выключен путем запуска сборочного файла с #NO_APP\n. Когда ассемблерный препроцессор был выключен таким образом, он может быть включен и выключен с парами #APP\n и #NO_APP\n в начале строк. Это используется компилятором для обертывания сборочных операторов, произведенных из asm() операторы.

- g

-g

Произведите отладочную информацию для символьного отладчика gdb(1) таким образом, сборочный источник может быть отлажен символически. Для включают файлы (включенный препроцессором C #include или согласно ассемблерной директиве .include) тот продукт инструкции в (__TEXT,__text) раздел, включать файл должен быть включен в то время как a .text директива имеет силу (т.е. должен быть a .text директива перед тем, чтобы включать) и конец с a .text директива в действительности (в конце включать файла). Иначе отладчик испытает затруднения при контакте с тем сборочным файлом.

- v

-v

Распечатайте версию ассемблера (и версия OS X и версия GNU, на которой это основывается).

- n

-n

Не предполагайте, что сборочный файл запускается с a .text директива.

- Я

-Idir

Добавьте dir к списку каталогов для поиска файлов, включенных с .include директива. Место по умолчанию для поиска является текущим каталогом.

- L

-L

Сохраните определенные метки, начинающиеся L (компилятор генерирует эти временные метки). Временные метки обычно отбрасываются для оставления свободного места в получающейся таблице символов.

- V

-V

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

- W

-W

Подавите предупреждения.

- динамичный

-dynamic

Активирует опции динамического подключения. Это - значение по умолчанию.

- статичный

-static

Заставляет ассемблер обрабатывать любые функции динамического подключения как ошибку. Это также вызывает .text директива для не включения pure_instructions атрибут раздела.

Опции архитектуры

Программа /usr/bin/as драйвер, выполняющий ассемблеры для определенных целевых архитектур. Если никакая целевая архитектура не указана, это принимает значение по умолчанию к архитектуре узла, на котором это работает.

- дуга

-arch arch_type

Указывает целевую архитектуру, arch_type, ассемблер, который будет выполняться и архитектура файла полученного объекта. Целевые ассемблеры для каждой архитектуры находятся в /usr/libexec/gcc/darwin/arch_type/as или /usr/local/libexec/gcc/darwin/arch_type/as. Указанная целевая архитектура может быть определенным процессором, когда файл полученного объекта отмечен для определенного процессора. См. тогда страницу справочника arch(3) поскольку текущий список определенного процессора называет для -arch опция.

- force_cpusubtype_ALL

-force_cpusubtype_ALL

Установите архитектуру файла полученного объекта к типу ALL независимо от инструкций в сборочном вводе.

- arch_multiple

-arch_multiple

Это используется cc(1) программа драйвера, когда это выполняется с кратным числом -archarch_type отмечает и сообщает программам как as(1) это, если это распечатывает какие-либо сообщения, для предшествования им с одной строкой, утверждая название программы — в этом случае as— и архитектура (от -archфлаг arch_type) для различения, к которому относится архитектура сообщения об ошибках. Этот флаг принят только фактическими ассемблерами (в /lib/arch_type/as) а не ассемблерным драйвером, /bin/as.

Специфичные для PowerPC опции

Следующие разделы описывают опции, определенные для архитектуры PowerPC.

- no_ppc601

-no_ppc601

Обработайте любой PowerPC 601 инструкция как ошибка.

- static_branch_prediction_Y_bit

-static_branch_prediction_Y_bit

Обработайте единственное запаздывание + или - после условной команды перехода PowerPC, поскольку статическое предсказание ветвлений, устанавливающее Y, укусило в коде операции. Пары запаздывания ++ или -- всегда устанавливайте биты AT. Это - значение по умолчанию для OS X.

- static_branch_prediction_AT_bits

-static_branch_prediction_AT_bits

Обработайте единственное запаздывание + или - после условного Питания команда перехода PC, поскольку статическое предсказание ветвлений устанавливает биты AT в коде операции. Пары запаздывания ++ или -- всегда устанавливайте биты AT, но с этой опцией выпущено предупреждение, если используется тот синтаксис. С этим флагом ассемблер ведет себя как инструменты IBM.