Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> во что преобразуется С-код 
:(
    Опции темы
LeMoH
Дата 11.1.2011, 01:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.8.2008

Репутация: нет
Всего: нет



скажите пожайлуйста во что преобразуется С-код, в ассемблерный или двоичный
PM MAIL   Вверх
Фантом
Дата 11.1.2011, 02:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 4
Всего: 49



Цитата(LeMoH @  11.1.2011,  01:54 Найти цитируемый пост)
скажите пожайлуйста во что преобразуется С-код, в ассемблерный или двоичный 

Что зададите ключами компилятора, в то и преобразуется.
PM   Вверх
yuryhor
Дата 11.1.2011, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 15.6.2010

Репутация: нет
Всего: нет



Цитата(LeMoH @ 11.1.2011,  01:54)
скажите пожайлуйста во что преобразуется С-код, в ассемблерный или двоичный

Вопрос не совсем корректный. 
С-код компилируется компилятором в объектный. А затем компоновщик (линкер) формирует рабочую программу в машинных кодах вашего процессора, которую можно в принципе  посмотреть дисассемблером.
PM MAIL   Вверх
Alexeis
Дата 11.1.2011, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 4
Всего: 459



Цитата(yuryhor @  11.1.2011,  11:51 Найти цитируемый пост)
С-код компилируется компилятором в объектный. А затем компоновщик (линкер) формирует рабочую программу в машинных кодах вашего процессора

  Я всегда думал, что объектный файл уже содержит машинные коды чередующиеся с внешними символами.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Estranged
Дата 11.1.2011, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 30.8.2010

Репутация: нет
Всего: 3



если посмотреть на правильный компилятор, то он бывает в двух частях: front-end и back-end части компилятора. Первая представляет программу в некотором виде (дерево, например, некое внутреннее представление), вторая - из внутреннего представления переводит в машинные коды под конкретную архитектуру. На примере MS VC: CL.EXE - оболочка компилятора, C1.DLL - front-end часть С компилятора, c1xx.dll - fron-end часть C++ компилятора, C2.DLL - back-end часть компилятора, которая и переводит результаты front-end части в объектные файлы. Объектные файлы потом передаются еще одному компоненту компилятора - компоновщику (линкеру), который настраивает вызовы внешних (импортируемых) функций.

Это сообщение отредактировал(а) Estranged - 11.1.2011, 11:51
PM MAIL   Вверх
xvr
Дата 11.1.2011, 12:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цепочка С->Obj->Exe более менее в таком виде присутствует во всех компиляторах. Возможны так же промежуточные шаги, но они обычно не видны пользователю (например в gcc цепочка такая: C->Asm->Obj->Exe). Содержимое Obj так же может быть разное. Обычно там исполняемый код+таблицы символов. Но может исполняемого кода и не быть (например в режиме глобальной оптимизации всей программы. В этом случае там лежит промежуточное представление, а реальная генерация кода производится на этапе линковки). Даже в Exe может не быть исполняемого кода - например для .NET платформы там лежит код для виртуальной машины .NET, который преобразуется в реальный исполняемый при первом запуске Exe на исполнение

PM MAIL   Вверх
bsa
Дата 11.1.2011, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Ответы тут, см. "Что такое компилятор".
PM   Вверх
LeMoH
Дата 12.1.2011, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.8.2008

Репутация: нет
Всего: нет



спасибо за ответы, и отдельное спасибо за ссылку на faq
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0734 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.