|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.12.2011, 01:29 | #1 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 21
|
Компиляция исходного кода на ассемблере и на С++
Я изучаю языки программирования дабы лучше понять компьютер, что бы в дальнейшем не делать глупые ошибки при написании кода. Где-то вычитал то что самый близкий для компьютера язык это ассемблер это то же самое что и машинный код вернее код микросхемы которая с помощью своих микропрограмм переводит этот бинарный машинный код в электрические сигналы правда я это процесс не понял но не этом суть. Я щас по немногу изучаю ассемблер и уже начинаю понимать что и как работает, но вот где то кто то мне сказал что параллельно с ассемблером нужно изучать с++ что бы более подробно понимать что происходит когда программируешь на языке высокого уровня. Да и ещё я как то слышал что компилятор с++ переводит исходный код с начала на ассемблер, а потом уже ассемблер переводится в исполняемый код, вообще не совсем понимаю в чём разница между исполняемым кодом, объектным кодом и машинным, поправьте меня кто нибудь и расскажите, а то как то читать статьи и рассуждения в форумах других людей не очень внушает доверие, а здесь вроде бы живое общение.
|
11.12.2011, 02:07 | #2 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,591
|
А вы хотите, что бы мы для вас статью написали? Ведь все это есть в Интернете...
E-Mail: arigato.freelance@gmail.com
|
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. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Редактор исходного кода | 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 |