русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Правила оформления оверлейных программ


Дата добавления: 2015-06-12; просмотров: 1165; Нарушение авторских прав


Турбо Паскаль позволяет создавать оверлеи только на уровне модулей. Это значит, что минимальным программным блоком перекрывающихся процедур и функций, который может быть оверлейным, является модуль (UNIT). Оверлей оформляется как модуль за исключением некоторых особенностей. Поэтому, если большая программа построена на модулях, а не на подключаемых директивой компилятора {$I ИмяФайла} файлах, очень просто любой из них преобразовать в оверлей.

Оверлеи, как и обычные модули, имеют раздел объявлений (INTERFACE) и раздел реализации (IMPLEMENTATION), а также могут иметь инициализирующую часть. Однако здесь необходимо соблюдать следующие условия:

1. В начале всех оверлейных модулей должны быть заданы режимы компиляции {$О+}, разрешающие модулю быть оверлейным.

2. Все процедуры и функции, прямо или косвенно вызывающие оверлейные подпрограммы, должны быть откомпилированы в режиме {$F+} (модель вызова FAR).

Эти условия реализуются обычно следующим образом. В начале оверлейного модуля устанавливаются директивы {$F+,O+}, а основная программа содержит в первых строках ключ режима компиляции {$F+}.

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

PROGRAM MultiCalc: {$F+ все вызовы процедур и функций имеют модель FAR } USES CRT, DOS, Overlay, MultCalc, DivCalc, AddCalc, SubCalc; {$O MultCalc} { модуль MultCalc - оверлей } {$O DivCalc} { модуль DivCalc - оверлей } {$O AddCalc} { модуль AddCalc - оверлей } {$O SubCalc} { модуль SubCalc - оверлей } ... {============ текст основной программы =============}

Рис. 18.1 {394}



Директива {$O ИмяМодуля} обязательна для указания оверлейных модулей. Обратите внимание на расположение этой директивы в тексте программы. Добавим также, что в списке директивы USES модуль Overlay должен стоять до первого модуля, который будет оверлейным. В остальном текст оверлейной программы практически не отличается от обычной (не считая операторов управления администратором оверлеев).

Программы с оверлеями уже не могут компилироваться в память и всегда должны создаваться на диске. В результате компиляции программы (пусть она имеет имя MULTICAL.PAS) будет получен выполнимый файл MULTICAL.EXE и сопутствующий ему файл MULTICAL.OVR, хранящий коды процедур из всех модулей, объявленных оверлейными.

Определенные ограничения накладываются на раздел инициализации оверлейного модуля (если, конечно, таковой имеется) . В нем запрещено включать администратор оверлеев. Кроме того, в разделе инициализации нельзя производить какие-либо действия до включения администратора. Может показаться, что возникает замкнутый круг: раздел инициализации выполняется перед действиями основной программы, но после включения администратора, а последний можно включить лишь в основной программе! Решение просто. Надо ввести в построение программы дополнительный неоверлейный модуль, в разделе инициализации которого и будет включаться администратор оверлеев, и подключить его в директиве USES перед оверлейными модулями.

Все системные библиотечные модули являются неоверлейными. Также не могут быть оверлейными модули, которые содержат обработку прерываний. Таким модулем, например, является CRT, так как он содержит обработку прерываний по нажатию клавиш Ctrl+Break.



<== предыдущая лекция | следующая лекция ==>
Работа с двумя принтерами одновременно | Анализ результата инициализации


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.299 сек.