Ну и вот еще если нужно ...
Цитата
В процессоре поддерживается два типа вызовов и инструкций возврата управления - ближние (NEAR) и дальние (FAR). Ближние вызовы передают управление другой ячейке в пределах того же программного сегмента, а дальние вызовы позволяют перейти в другой программный сегмент.
Инструкция ближнего обращения CALL помещает в стек 16-битовый адрес возврата (только смещение), а инструкция дальнего вызова помещает в стек 32-битовый адрес возврата (адрес сегмента и смещение). Соответствующая инструкция RET извлекает из стека только смещение или адрес сегмента и смещение.
На основе описания процедуры в Borland Pascal будет автоматически выбираться правильный тип обращения. Процедуры, описанные в интерфейсной секции модуля соответствуют дальнему обращению и могут вызываться из других блоков. Процедуры, описанные в программе в секции реализации модуля (implementation), являются ближними и могут вызываться только из этой программы или данного модуля.
Для некоторых конкретных целей можно потребовать, чтобы процедура имела дальний тип вызова. Например, процедура выхода, драйверы устройств для текстовых файлов и другие средства, использующие указатели на процедуры. Директива компилятора {$F+} указывает на необходимость использования дальнего типа вызовов. Процедуры или функции, скомпилированные с данной директивой, всегда будут иметь дальний тип вызова. При использовании в Borland Pascal директивы {$F-} правильная схема вызова будет выбираться автоматически. По умолчанию назначается режим {$F-}.