Сегментні дескриптори, osdev wiki, fandom powered by wikia

У дескрипторі визначені наступні поля:

Дескриптор сегмента коду Правити

При описі сегмента коду біт S = 1, а поле Segment type має вигляд

  • Біт C (conforming) визначає, чи є сегмент конформних (1 для конформних, 0 для неконформних);
  • Біт R (readable) визначає, чи доступний сегмент для читання. При R = 1 сегмент доступний для читання і виконання, при R = 0 - тільки для виконання. Запис в сегмент коду заборонена завжди;
  • Біт A (accessed) встановлюється в одиницю при завантаженні процесором відповідного селектора в сегментний регістр. Залишається встановленим до тих пір, поки не буде явно скинутий операційною системою.

Дескриптор сегмента даних Правити

При описі сегмента даних або стека біт S = 1, а поле Segment type має вигляд

  • Біт E (expansion direction) визначає напрямок росту сегмента - 0 для зростаючих вгору і 1 для зростаючих вниз (як стек). Якщо E = 1, змінюється сенс поля Limit, - дозволені звернення до сегменту по зсувах від Limit + 1 до 0xFF..F (кількість розрядів визначається бітами D / B і L);
  • Біт W (writable) дозволяє запис в даний сегмент. Якщо W = 0, дозволено тільки читання, якщо W = 1, дозволені і читання, і запис. Виконання даних заборонено завжди. Сегмент стека завжди повинен бути доступний для запису;
  • Біт A (accessed) має те ж призначення, що і для дескрипторів сегмента коду, - показує, чи було звернення до дескриптора з моменту останнього скидання цього прапора.

Дескриптор сегмента завдання Правити

Для поліпшення статті необхідно: Навіть не знаю, що з цим робити.

Виявлено використання розширення AdBlock.

Схожі статті