Оглавление Об учебном пособии
Использованные источники1 Использованные источники2 Использованные источники3 Использованные источники4 Использованные источники5 Использованные источники6

4.3.4. Межсегментные передачи управления без изменения или с уменьшением уровня привилегий.

Это модель взаимодействия программ при возврате из вызываемых процедур или программ обработки прерываний или ловушек.

Передачи управления при возвратах производятся командами: из вызываемых процедур - RET, RET n или из программ обработки прерываний (ловушек) - IRET.

Схемы возврата и проверок такие же, как при выполнении перехода по командам FAR CALL или FAR JMP (передача управления без изменения уровня привилегий).

Отличиями являются:

  • команды возврата не содержат адреса переходов;
  • полный указатель точки возврата (селектор, смещение) берется из стека, а не из команды;
  • изменено условие корректности перехода;
  • при изменении уровня привилегий производится восстановление старого стека.

В обычных условиях указатель возврата всегда достоверен, поскольку он был сформирован командой CALL или INT. Но здесь учитывается возможность того, что вызываемая процедура могла изменить указатель или неправильно обработать стек. Проверки при возврате из процедур направлены на исключение таких ситуаций.

При выполнении возврата из процедур переход считается корректным, если уровень привилегии селектора целевого кодового сегмента, извлеченного из стека, совпадает с уровнем привилегии дескриптора этого сегмента и не превышает текущий уровень привилегий, т.е.:

(CPL <= DPLВ) & (DPLВ = CPLВ),

где:

DPLВ - уровень привилегии сегмента возврата (из стека),
CPLВ - уровень привилегии селектора сегмента возврата (из таблицы дескрипторов).

Кроме проверок соответствия уровней привилегий, при загрузке селектора кодового сегмента и селектора сегмента стека (восстановление стека) выполняются все стандартные проверки.

Со схемой взаимодействия программ без изменения или с уменьшением уровня привилегий командами возврата: из вызываемых процедур - RET, RET n или из программ обработки прерываний (ловушек) - IRET ознакомится по экранной модели (мод. 6).


Вопросы для самопроверки:

  1. В каких случаях допускаются передачи управления с уменьшением уровня привилегий.
  2. Какими средствами производятся передачи управления с уменьшением уровня привилегий.
  3. Какой механизм перехода используется при организации возврата из процедур.
  4. Какой обработчик используется при возврате из процедуры.
  5. Как определяется точка возврата из процедуры.
  6. Определите условие доступности возврата из процедуры по уровням привилегий.
<< Предыдущая страница Следущая страница >>