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