Ассемблирование и компиляция исходного кода


Ассемблирование и компиляция исходного кодаНа этапе ассемблирования и компиляции основная работа выполняется Ассемблером и компилятором, которые осуществляют преобразование исходного кода программы в объектный код.

Исходными данными для Ассемблера являются файлы исходного кода на языке Ассемблер (.asm) и включаемые файлы (.inc), созданные программистом на предыдущем этапе. В случае успешного ассемблирования создаются файлы объектного кода программы (.o). Эти файлы являются промежуточными в процессе конструирования программы. Файл объектного кода не является выполнимым и не пригоден для программирования микроконтроллера. При этом он содержит машинно-зависимый код, а также дополнительную информацию для компоновщика. Файл объектного кода не содержит в явном виде информацию, доступную для анализа программистом. Кроме файлов объектного кода Ассемблер создает различные файлы отчета: файл ошибок (.err), файл листинга (.lst) и перекрестные ссылки (.xrf). Файл ошибок содержит ошибки, предупреждения и сообщения, сгенерированные во время ассемблирования. В случае наличия ошибок файл объектного кода не создается. Файл листинга содержит объектный код и исходный код программы, адреса размещения, символьную таблицу, карту распределения памяти программ, количество ошибок, предупреждений, сообщений и другую полезную информацию. Файл содержащий перекрестные ссылки также содержит информацию по всем символическим именам, используемым в файле исходного кода.

Исходными данными для компилятора являются файлы исходного кода языка С (.с) и файлы заговоловочные (.h), созданные программистом на предыдущем этапе. В остальном процесс компиляции полностью аналогичен ассемблированию. Как правило, Ассемблер и компилятор способны обрабатывать только один файл исходного кода. Поэтому при наличии нескольких файлов исходного кода необходимо каждый файл ассемблировать или компилировать отдельно.

Файлы объектного кода, сгенерированные различными компиляторами и Ассемблерами, имеют единый формат, что позволяет объединять их при компоновке. Эта особенность дает возможность при разработке программы использовать различные языки программирования. Кроме этого, большинство компиляторов С позволяет при необходимости включать в исходный код фрагменты кода, написанные на Ассемблере.


Только материалы из рубрики ТИЦ свободны для копирования без каких-либо условий. Ссылка на остальные материалы обязательна.