~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ CFECA8F64E05F0A12C790902099C5A97__1649774760 ✰
Заголовок документа оригинал.:
✰ crt0 - Wikipedia ✰
Заголовок документа перевод.:
✰ crt0 — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Crt0 ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/cf/97/cfeca8f64e05f0a12c790902099c5a97.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/cf/97/cfeca8f64e05f0a12c790902099c5a97__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 06:39:41 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 12 April 2022, at 17:46 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

crt0 — Википедия Jump to content

crt0

Из Википедии, бесплатной энциклопедии

crt0 (также известный как c0 ) — это набор процедур запуска выполнения, связанных с программой C программы , который выполняет любую работу по инициализации, необходимую перед вызовом основной функции .

Форма и использование [ править ]

Crt0 обычно принимает форму объектного файла с именем crt0.o , часто написанный на языке ассемблера , который автоматически включается компоновщиком в каждый создаваемый им исполняемый файл . [1]

crt0 содержит самые основные части библиотеки времени выполнения . Таким образом, точная работа, которую он выполняет, зависит от компилятора программы, операционной системы и стандартной библиотеки C. реализации [1] Помимо работ по инициализации, требуемых средой и набором инструментов , crt0 может выполнять дополнительные операции, определенные программистом, такие как выполнение C++ глобальных конструкторов и функций C, несущих GCC . ((конструктор)) Атрибут [2] [3]

«crt» означает «время выполнения C», а ноль означает «самое начало». Однако, когда программы компилируются с использованием GCC, он также используется для языков, отличных от C. Альтернативные версии crt0 доступны для особых сценариев использования; например, чтобы включить профилирование с помощью gprof , программы должны быть скомпилированы с помощью вместо этого gcrt0 . [4]

Пример crt0.s [ править ]

Этот пример предназначен для Linux x86-64 с синтаксисом AT&T , без фактической среды выполнения C.

.text 

 .globl   _start 

 _start:   # _start — это точка входа, известная компоновщику 
     xor   %ebp  ,   %ebp              # эффективно RBP := 0, отмечает конец кадров стека 
     mov   (  %rsp  ),   %edi            # получает argc из стека (неявно расширенное до 64-битного уровня) 
     lea   8  (  %rsp  ),   %rsi           # возьмем адрес argv из стека 
     lea   16  (  %rsp  ,  %rdi  ,  8  ),   %rdx   # возьмем адрес envp из стека stack 
     xor   %eax  ,   %eax              # для ABI и совместимости с 
     вызовом   icc main                   # %edi, %rsi, %rdx — это три аргумента (из которых первые два являются стандартными C) для main 

     mov   %eax  ,   %edi      # передача возврата main к первому аргументу _exit 
     xor   %eax  ,   %eax      # для ABI и совместимости с 
     вызовом   icc _exit          # завершить программу 

См. также [ править ]

Ссылки [ править ]

  1. ^ Перейти обратно: а б «Инициализация среды выполнения C, crt0.o» . embecosm.com . 2010 . Проверено 30 декабря 2013 г.
  2. ^ «Инициализация программы: Создание библиотеки C» . osdev.org . 25 февраля 2014 г. Проверено 21 апреля 2014 г.
  3. ^ «Вызов глобальных конструкторов» . osdev.org . 08.04.2014 . Проверено 21 апреля 2014 г.
  4. ^ «Компиляция программы для профилирования: GNU gprof» . исходное программное обеспечение.org . Проверено 30 декабря 2013 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: CFECA8F64E05F0A12C790902099C5A97__1649774760
URL1:https://en.wikipedia.org/wiki/Crt0
Заголовок, (Title) документа по адресу, URL1:
crt0 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)