Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Внимание. Предварительные результаты конкурса.
Рассмотрим в подробностях поля дескриптора, которые были помечены «хрестиками». ВСЕ, О ЧЕМ ПОЙДЕТ РЕЧЬ НИЖЕ, СПРАВЕДЛИВО ТОЛЬКО ПРИ S=1!!! (S - 12 бит во втором двойном слове, т.е. при таком раскладе дескриптор описывает либо данные, либо код). 11 бит во втором двойном слове (он же четвертый бит поля «Тип») показывает, является описуемый сегмент кодом или данными (0 – данные, 1 – код) Если это сегмент данных, то младшие три бита поля «Тип» (10-8) интерпретируются как бит E (expansion-direction) – рост направления, бит W (write-enable) – запись разрешена и бит A (accessed) – доступен. Я умышлено привожу английские интерпретации, чтобы знатоки языка сами сделали надлежащие выводы без моих «вольных переводов». Посмотрите мимолетно на табличку, и все станет понятно: И вот здесь вас подстерегает один приятный сюрприз: оказывается, нет такого специального типа сегмента, как сегмент стека. Сегмент стека – это ни что иное, как сегмент данных, растущий вниз!!! Не правда ли, вы в шоке?:) Сегмент стека ОБЯЗАТЕЛЬНО должен быть доступен для чтения/записи! Т.е. мы должны учесть это при описании сегмента стека. ДЛЯ сегмента кода младшие три бита поля «Тип» интерпретируются, как C (conforming) – подчиненный, R (read enable) – чтение разрешено и A (accessed) – доступен. Как видите, сегмент кода может быть доступен как только для исполнения, так и для исполнения/чтения. Для исполнения/чтения он может быть доступен в том случае, когда мы храним какие-либо константы или другие статические данные в памяти, непосредственно в сегменте кода. Ну это и так понятно. А теперь ВНИМАНИЕ! В ЗАЩИЩЕННОМ РЕЖИМЕ В СЕГМЕНТ КОДА ПИСАТЬ НЕЛЬЗЯ! Если ты заметил, даже нет такого битика, чтоб никто и не пытался… Что это за загадочный бит C (conforming)? Этот относится к уровням привилегий и пока не будем его трогать вообще. А что это за подозрительный бит A (accessed)? Что значит «доступен» или не доступен? А об этом мы поговорим в СЛЕДУЮЩЕМ, очень важном выпуске… ТЕПЕРЬ, ЕСЛИ S=0 (описуемый сегмент является системным сегментом): Процессор различает 6 типов системных дескрипторов:
В свою очередь, данные 6 дескрипторов делятся на две группы: дескрипторы системных сегментов (первые два) и дескрипторы шлюзов (все остальные). Самый первый (дескриптор сегмента «таблица LDT») нам уже хорошо знаком, а вот с остальными мы еще не скоро познакомимся… Вообщем, смотри на таблицу:
|