Многомодульные программы

Язык программирования C-51 позволяет писать многомодульные программы.

Оттранслированный программный модуль сохраняется в виде отдельного файла в объектном формате, где кроме машинных команд сохраняется информация о именах переменных, адресах команд, требующих модификации при объединении модулей в единую программу, и отладочная информация.

Раздельная трансляция программы возможна при использовании двух программ: транслятора исходного текста программы c-51 и редактора связей bl-51.

При программировании на языке С раздельная трансляция не вызывает каких либо проблем. Однако если при компиляции исходного текста программы транслятор обнаружит переменную, которая не была заранее объявлена, то будет сформировано сообщение об ошибке и объектный модуль будет стёрт с диска компьютера.

Для того, чтобы транслятор вместо формирования сообщения об ошибке записал в объектный модуль информацию, необходимую для редактора связей, нужно осуществить объявление внешних переменных подпрограмм и меток. Для объявления внешних переменных после обычного объявления добавляется слово extern. При таком объявлении при трансляции исходного текста программы для переменной память данных для переменных не распределяется, а создаются соответствующие записи для редактора связей, позволяющие осуществить соответствующие вызовы подпрограмм и переходы между модулями, а также обращение к переменным другого модуля.

Все используемые в модуле подпрограммы должны быть предварительно объявлены или определены. Это же относится и к подпрограммам из других модулей. При объявлении подпрограммы должны быть полностью объявлены все ее параметры.

Пример объявления внешних подпрограмм на языке С-51:

char TestOZU(void);

char Rd558(char AdrRAM,char NachAdr,char Nbyte);

char Wr558(char AdrRAM,char NachAdr,char Nbyte);

В языке программирования С все подпрограммы и глобальные переменные доступны из любого модуля по умолчанию, поэтому никаких особых действий при написании подпрограммы, используемой в других модулях, не требуется.

Программа bl-51 объединяет несколько объектных файлов (модулей) в один. Для объединения нескольких модулей в исполняемую программу имена всех модулей передаются в редактор связей в качестве параметров при запуске этой программы. Пример вызова редактора связей из командной строки DOS для объединения трёх модулей:








Дата добавления: 2015-10-09; просмотров: 1473;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.