выходом компилятора является объектный файл,
выходом компилятора является объектный файл, готовый к
редактированию связей. Выход ассемблера - тоже объектный файл.
Следовательно, достаточно лишь связать программу на языке высокого
уровня и программу на языке ассемблера при помощи редактора связей
DOS. Нет необходимости соединять программы в процессе выполнения,
как это делалось для интерпретатора Бейсика.
Построим пример на языке Фортран (Фиг. 10.11). Для языка
Паскаль все очень похоже. Подобный пример приведен в приложении D
справочника к компилятору Фортрана. В примере головная программа,
написанная на Фортране, объединена с программой на языке
ассемблера, которая считывает текущее время, используя программное
прерывание базовой системы ввода-вывода. Подпрограмма на языке
ассемблера обращается к BIOS для определения текущего времени и
возвращает соответствующее значение в программу на Фортране.
Головная программа преобразует кванты таймера, в текущее время,
выраженное в часах, минутах и секундах.
На Фиг. 10.11 представлена головная программа на Фортране.
Эта программа вызывает внешнюю процедуру TIMER, имеющую один
параметр A - четырехбайтовое целое значение. Возрващаемое
процедурой TIMER значение представляет собой текущее время,
выраженное в квантах таймера и отсчитываемое от полуночи.
Программа на Фортране по полученному из процедуры TIMER значению
вычисляет время в часах(HOURS), минутах(MINS), секундах(SECS) и
сотых долях секунды(HSECS). Отметим, насколько проще реализовать
умножение и деление на языке Фортран, чем на языке ассемблера.
Можно убедиться, что выполнение всех подобных операций на Фортране
существенно упрощает программирование. Чрезвычайно удобен и способ
преобразования целых переменных в выдаваемые на печать символы при
помощи операторов Фортрана WRITE и FORMAT. На языке ассемблера для
выполнения тех же самых действий потребовалось бы несколько сот
Содержание Назад Вперед