Дескриптор шлюза — служебная структура данных, служащая для различных переходов. Используется только в защищённом режиме. В реальном режиме некоторым аналогом может служить дальний адрес. Длина дескриптора стандартна и равна восьми байтам.
Селектор и смещение составляют обычный дальний адрес точки входа в процедуру.
При выполнении дальних команд CALL, JMP с указанием селектора шлюза, значение смещения, указываемого в команде игнорируется.
Алгоритм перехода с использованием шлюза:
Теперь подробнее:
Нельзя использовать в IDT.
Характерной особенностью шлюза вызова является наличие поля WC, благодаря которому возможна передача до 25=32 слов/двойных слов вызываемой процедуре через стек. Подробнее данный тип шлюза описан в статье Сегментная защита памяти
Может использоваться в любой из трёх дескрипторных таблиц.
Единственная особенность этого шлюза состоит в том, что в качестве сегмента указан сегмент TSS. Поля смещения не используются и могут иметь любое значение.
Этот шлюз используется только в IDT.
Его особенностью является сброс флага прерываний IF при входе в процедуру обработки. Так как прежнее значение регистра флагов сохраняется в стеке, то при выходе из процедуры обработки флаг IF принимает исходное положение. Это позволяет обрабатывать некоторые прерывания в режиме CLI.
Этот шлюз используется только в IDT.
Самый простой шлюз. При поступлении прерывания просто переходит на процедуру обработки (при необходимости производится переключение стека).
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .