Лекция: Использование компилятора С0
Для трансляции и выполнения С0-программы используется следующая последовательность команд операционной системы:
c0.exe трансляция
masm p.exe (или tasm p.exe) ассемблирование
tlink p.obj компоновка
p.exe [<входной_файл] [>выходной_файл] выполнение
Компилятор С0 вводит исходную программу из файла p.с0, помещая результат трансляции на языке ассемблера в файл p.asm. Затем производятся ассемблирование, компоновка (редактирование связей) и выполнение программы. Объектный и исполняемый модули транслируемой программы обычно получаются в файлах p.obj и p.exe.
Для ассемблирования необходима библиотека стандартных функций — файл std.asm — который присоединяется псевдокомандой INCLUDE к транслируемой программе на этапе ее ассемблирования. Эта команда вставляется транслятором С0. Используется ассемблер masm.exe или tasm.exe.
Транслятор C0 переносит строки исходной программы в получаемую из нее ассемблерную программу в виде строк комментария, начинающихся символом ";". За каждой такой строкой размещается объектный код, т.е. команды, полученные в результате ее трансляции.
Сообщения об ошибках в исходной программе также вставляются транслятором С0 в объектный код в виде строк комментария, содержащего номер (тип) ошибки и символ "^", указывающий на текущую позицию предшествующей исходной строки в момент обнаружения ошибки. В конце объектной программы вставляется итоговое сообщение о количестве обнаруженных ошибок, дублируемое на экране.
Ассемблер при запуске запрашивает имена выходных файлов для объектной программы, листинга (протокола) трансляции и таблицы перекрестных ссылок. На эти запросы можно отвечать клавишей <Enter>.
Если же ассемблер выдаст предупреждения (Warning) или сообщения об ошибках (Error), необходимо повторить ассемблирование, указав какое-либо имя файла для листинга трансляции, например, p.lst. По содержимому этого файла можно определить, в каких строках ассемблерной программы и соответствующих им строках С0-программы обнаружены ошибки.
Обычно эти ошибки вызваны использованием имен несуществующих функций и переменных.