Главная » Просмотр файлов » GCC - The Complete Reference

GCC - The Complete Reference (537669), страница 62

Файл №537669 GCC - The Complete Reference (GCC - The Complete Reference) 62 страницаGCC - The Complete Reference (537669) страница 622015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 62)

В случае если список аргументов занимает более одной строки, то он обязательно должен быть заключен в квадратные скобки. 4. Создайте вайей!ейп. Чтобы воспользоваться преимушествами конфигурирования утилитой Ацсосопб, необходимо изменить содержимое компоновочного файла. Его следует переименовать в хва)кеб11е. Ап и включить в него сценарии, сгенерированные средством дцеосопб. Некоторые часто встречающиеся определения приведены в таблице 14.4. Глава 14.

Утилиты гпайе и Ац1осопг 277 Таблица 14.4. Ключевые слова, оп еделяемые утилитой дцтосопТ для п1аке-файлов Квивоооо елово Оввеовво всРьаово 9СРРО осРРРьаовв осххо 9СХХРЬЪОВ9 9СЕРВ9 Как правило, имеет значение -яака=лаве ь Имя каталога, содержащего исходные файлы. 5. Создайте сопйй.'пйп. Самый простой способ создания конфигурационного заголовочного файла — запуск утилиты ацсоцеагтег и создание с ее помощью файла сспййд.Ь. 1п. Последний используется в качестве входного файла при построении файла сспеад.

ь, Для этого введите команду без аргументов: а ацеопеад 6. Обновите исходный код. Во все файлы исходного кода, для которых перенос программы может иметь значение, необходимо директивой йапс1цтте включить заголовочный файл сопйьд.Ь. Это обеспечивает выполнение условной компиляции в соответствии с параметрами среды. Например, при отсутствии стандартных заголовочных файлов языка С вам, возможно, придется изменить порядок установки: 91тдег ЗТПС ИЕЛПКНЗ !* Коилилируетсл только в случае отсутствии стандартных заголовочнзгк файлов С */ еепд1Е 7.

Создайте сценарий установки. С помощью следующей команды утилита ацсосопг считывает файл сопгйдцге. ап и вырабатывает сценарий соптьдцге: 3 ацсосопе 8. Скопируйте сценарии Ав1осопГ. Следующие три сценария должны быть включены в пакет установки. Они входят в состав кцсосопй и, как правило, находятся в каталоге /цег/11Ь/аисосопб или /цнг/онаго/ацсстаке: сопт1д.асеев соптад.вцЬ 1пвеа11-вЬ вговтаььв вьстьаовв 9ЬХВОВЗВ9 вьтвео ввавьхве ввкт наккв 9вгсдхго Компилятор С.

Набор флагов, передаваемых компилятору С. Препроцессор С. Набор флагов, передаваемых препроцессору С. Компилятор С++. Набор флагов, передаваемых компилятору С++. Как правило, при использовании макроса хс соивхо кварка определяется как -рнаук соигхо и. Утилита клега11 или сценарий ьпвга11-вкь Флаги, передаваемые компоновщику. Объектные файлы, включаемые при компоновке программ. Библиотеки, используемые при компоновке программ. Утилита гапььь. ава Йивмбпер ИМ0 А ссемблер ОХ~3 составлен из довольно большого набора ассемблеров. Он поддерживет множество разнообразных платформ.

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

Поэтому ол интегрирован с компилятором б1ч0 и обычнодействует на заднем плане. Но иногда могут возникать и такие обстоятельства, когда нужно поработать непосредственно с ассемблерным кодом. Управление ассемблированием из командной строки Когда программа пишется на языке высокого уровня, ОСС обычно сам задействует ассемблер соответствующей платформы. При этом редко приходится применять опции команд дсс, связанные с ассемблированием.

Однако если понадобится написать отдельный модуль на языке ассемблера для особых целей, то придется применить некоторые специальные опции из тех, что приведены в таблице 15.1. Если требуется написать на ассемблере отдельный модуль, то для начала лучше написать на языке С простую программу, которая содержит все необходимые структурные элементы, и затем применить чсс с опцией -8, чтобы сгенерировать начальный исходный модуль на ассемблере. Написание программ на ассемблере — трудоемкий процесс, и при этом трудно избежать ошибок. Поэтому лучше начинать с применения такого испытанного генератора ассемблерного кода, как ССС. Глава 1В. Ассемблер Ог)() 279 Таблица 15,1. Опции командной строки Ясс для управления ассембле ом бй)0 Включает вывод листинга в файл с именем л21е.

С этой опцией в поле орсэ можно использовать одну нз приведенных ниже букв или нх сочетание для указания формата и содержания вывода. По умолчанию эта опция применяется как сочетание -аь1в. Листинг обычно направляется на стандартный выход, но его можно перенаправить в файл, если указать имя файла в параметре опции, например, так: -анйв авеаЬ1у. 11вс. Значение буквенных кодов флагов этой опции: -а (оров] (йя22е) с — не выводит код, пропускаемый по условию; Š— пропускает все отладочные директивы; Ь вЂ” включает в вывод исходный код языка высокого уровня; 1 — включает в вывод дамп ассемблированного кода в шестнадцатиричном формате; ь — выводит статистику построчной отладки; т — включает в вывод макро-расширения; л — не выводит результаты обработки форм; в — выводит таблицу перекрестных ссылок программных символов. Пропускает предобработку пустых строк и комментариев.

Воспринимает предупредительные сообщения как ошибки. Генерирует отладочную информацию в формате ОЧУАВЕ2 и помещает ее в объектном файле. Генерирует отладочную информацию в формате ВТАБ и помещает ее в объектном файле. Выводит список опций и на этом завершает работу программы. Добавляет указанное имя каталога к списку расположений для поиска файлов, включаемых по директиве .

1со1иее. Указывает не выдавать предупреждений при переполнении знаковых целочисленных переменных (сцрпеб очегяош). Выдает предупредительные сообщения при изменениях в таблице смещений (Прнегепсез (аЫе). Эта таблица содержит абсолютные величины, получаемые иэ пары перемещаемых адресов с помощью вычитания. Она должна обновляться каждый раз при установке новых значений адресов. Сохраняет записи таблицы символов (зуглЬо) (аЫе еп(пез) для локально определенных символов, в исходном листинге они начинаются с последовательности ".ь". -Еаса1-иагозляе -ядиаххз --явквЬв --Ье1р -1 Лххесгоху -веер-1ооа1е То же, что и --Ьеер-1осв1э.

То же, что и --жк1. -м Информация зависимостей в формате, допускающем ее помещение в компоновочный сценарий (глакейе), Выводится в файл с именем, указанным в поле 212елвже. Компилирует в режиме совместимости с МВ(. Это означает, что процесс ассемблирования воспринимает синтаксис стандартного ассемблера, поставляемого компанией Малого(ес Пезеагсп. -Нр 221елате — Евсеуж ВужЬО2к яз1ОВ ОПрЕдЕЛяЕт СИМВОЛ С ИМЕНЕМ аузШО2 И НаэиаЧавт ЕМУ ЗНаЧЕНИЕ кв2ив. 280 Часть!П. Внутренняя структура и окружение Опцией Описание Подавляет вывод любых предупредительных сообщений. То же, что и --и.

--ло-маке Назначает имя выходного файла. Помещает код из раздела рыл в разделе тахт. Показывает общее время ассемблирования и объем памяти, задействованной процессом ассемблера, Любые символы, локальные для данной сессии ассемблирования и имеющие постоянное значение, удаляются. Ссылки на них заменяются литералами с их значением. Назначает вывод в формате ассемблера, комплектного применяемой системе, Выводит список опций, специфичных для целевой платформы, и на атом ааверщает работу программы. Выводит номер версии и завершает работу программы. Подавляет вывод всех предупредительных сообщений.

То же, что и --по-иакл. -о т11елаае --есасквкасв --вскьр-1оса1-аьес1псе --ькваьс1опа1-еоквас --сакяес-Ье1р --текеьол Если нет необходимости делать большой кусок работы на ассемблере, то лучше сделать вставку ассемблерного кода в протрамму на языке более высокого уровня. Этот вопрос будет подробно рассмотрен далее в этой ~лаве. Абсолютная и относительная адресация, выравнивание адресов Многие действия в языке ассемблера непосредственно связаны с адресами и с вычислением адресов.

Адреса ссылок, указываемые в ассемблерном коде как символические имена расположений памяти, вычисляются и подстанавливаются ассемблером. Например, следующая инструкция З1е (локальный переход к указанному адресу) передает управление на строку, которая следует за меткой . ЬЗ: ада 316,тьевр З1е .ХЗ оа11 тцпсе1оп .Ьз юом1 аб,тьеах Расположение кода, отмеченное как . ЬЗ, не является абсолююной числовой величиной, Компоновщик будет изменять его значение при каждой компоновке исполняемой программы. Так что адрес метки .ьЗ вЂ” относительная величина.

Она может быть определена только как смещение относительно начала модуля. Компоновщик заменяет значения всех ссылок их относительными адресами, так же как и аргументную ссылку оператора З1е в рассмотренном выше примере. Абсолютное выражение имеет постоянное, неизменяемое при компоновке значение. Оно может представлять собой постоянную величину, либо вычисляться как результат выражения. Возможно вычисление абсолютного значения и из относительных величин при выполнении действий над относительными адресами. Например, Главв зб. Ассемблер 6Й(1 28 1 следующее выражение дает в результате абсолютную величину, потому что смеше- ние между двумя указанными расположениями кода будет постоянным: .Ьб — .ЬЗ Компоновщик будет перемешать расположение как .

ьб, так и . Ьз, но при этом смещение между ними будет постоянным. В следующем примере результат выражения будет относительным к положению метки . Ь44, потому что в выражении вычисляется абсолютная величина и складывается с относительным адресом метки . ЬЯЯ: .ЬЯЯ + .Ьб — .ГЗ Некоторые выражения с адресной арифметикой не могут быть однозначно определены (11! де(1пед ехргезз)опз). Например, результатом следующего выражения будет число, не имеющее смысла.

Оно является функцией начального адреса размещения модуля в памяти, которое выбирается компоновщиком. .Ьб + .ЬЗ Следующим важным положением применения ассемблера является выравнивание адреса (адгезб Ьоцпдагу). Если адрес является числом, кратным 16 (те, деление этого числа на 16 не дает остатка), то мы говорим, что этот адрес имеет выравнивание по границе 16-бит, или 16-битное выравнивание.

Это может иметь важное значение для некоторых структур данных н для инструкций. В некоторых случаях от этого зависит эффективность программы, но чаще всего применение определенного выравнивания диктуешься требованиями аппаратуры. Такие директивы ассемблера, как . окд и . в14дп, используются для заполнения указанным в них значением нужного количества байт для обеспечения требуемого выравнивания адреса следующей инструкции. Разумеется, при этом необходимо, чтобы при компоновке программы выравнивание применялось и к начальному адресу модуля. Только тогда внутреннее выравнивание кода и элементов данных будет корректно соответствовать применяемым требованиям. Вставка ассемблерного кода Необходимость непосредственного включения в программу ассемблерного кола может возникнуть по целому ряду причин.

Характеристики

Тип файла
DJVU-файл
Размер
6,08 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6358
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее