Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2011, 01:29   #1
serrggeee
Пользователь
 
Регистрация: 12.01.2010
Сообщений: 21
По умолчанию Компиляция исходного кода на ассемблере и на С++

Я изучаю языки программирования дабы лучше понять компьютер, что бы в дальнейшем не делать глупые ошибки при написании кода. Где-то вычитал то что самый близкий для компьютера язык это ассемблер это то же самое что и машинный код вернее код микросхемы которая с помощью своих микропрограмм переводит этот бинарный машинный код в электрические сигналы правда я это процесс не понял но не этом суть. Я щас по немногу изучаю ассемблер и уже начинаю понимать что и как работает, но вот где то кто то мне сказал что параллельно с ассемблером нужно изучать с++ что бы более подробно понимать что происходит когда программируешь на языке высокого уровня. Да и ещё я как то слышал что компилятор с++ переводит исходный код с начала на ассемблер, а потом уже ассемблер переводится в исполняемый код, вообще не совсем понимаю в чём разница между исполняемым кодом, объектным кодом и машинным, поправьте меня кто нибудь и расскажите, а то как то читать статьи и рассуждения в форумах других людей не очень внушает доверие, а здесь вроде бы живое общение.
serrggeee вне форума Ответить с цитированием
Старый 11.12.2011, 02:07   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,591
По умолчанию

Цитата:
Сообщение от serrggeee Посмотреть сообщение
как то читать статьи и рассуждения в форумах других людей не очень внушает доверие, а здесь вроде бы живое общение.
А вы хотите, что бы мы для вас статью написали? Ведь все это есть в Интернете...
Arigato вне форума Ответить с цитированием
Старый 11.12.2011, 02:27   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)ассемблер - это не язык процессора, язык процессора это опкоды машинных кодов, а на ассемблере они предоставлены в текстовом виде(так все-таки проще)
2)исполняемый файл - это файл готовый к исполнению операционной системой(например .exe, .com)
3)объектный файл - файл содержащий уже скомпиленный код(ну и данные) но обычно еще не подготовленные до конца(например не решены внутренние зависимости), требует линковки(хотя возможно поидее запуск напрямую, но это не принято), хотя например exe тоже считается объектный файлом(примеры это COFF и OMF файлы(это типы а не расширения))
4)машинный код - собственно код для проца, те самые опкоды.
5)процесс компиляции
принцип диаграмки:
исходник - самое начало
exe - итог
из---(некое действие)---в - некое преобразование из ... в ...
в квадратных скобках необязательные части(пропускаем и результат необязательного действия)

обычно идет так:
исходник---[(препроцессор)]---исходник2---[(компиляция в промежуточный код)]---промежуточный код---(трансляция)---ассемблерный код---(ассемблирование)---объектник---(линковка)---exe
PS: трансляция и ассемблирование могут быть совмещены что их не разделишь.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 11.12.2011 в 02:30.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редактор исходного кода AndrYxo Софт 0 23.06.2011 08:48
Компиляция исходного кода vitekrock Общие вопросы по Java, Java SE, Kotlin 5 05.12.2010 21:24
Из исходного кода в Cookies x852x Общие вопросы Delphi 0 21.03.2010 13:09
Анализ исходного кода heart Безопасность, Шифрование 7 31.12.2009 08:26