Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 113

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 107 108 109 110 111 112 < 113 > 114 115 116 117 118 119 .. 528 >> Следующая

POP.
Исключение 13 - нарушение общей защиты (#GP). Возникает во всех случаях
нарушения защиты, которые не вызывают исключений #NP, #SS, #PF или #TS. К
таким случаям относятся:
• нарушение границы сегмента при обращении к сегментам, на которые
ссылаются регистры CS, DS, ES, GS и FS;
• нарушение границы дескрипторной таблицы (кроме случаев переключения
задач и переключения стека);
• передача управления невыполняемому сегменту;
• запись в сегмент кода или в сегмент данных, для которого разрешено
только чтение;
• чтение из сегмента кода, для которого разрешено только выполнение;
• попытка загрузить сегментный регистр SS селектором сегмента, для
которого разрешено только чтение (кроме случая переключения задач);
• загрузка сегментных регистров SS, DS, ES, FS или GS селекторами
системных дескрипторов;
• загрузка сегментных регистров DS, ES, FS или GS селекторами сегментов
кода, допускающих только выполнение;
• загрузка сегментного регистра SS нуль-селектором или селектором
сегмента кода;
• загрузка сегментного регистра CS нуль-селектором или селектором
сегмента данных;
• обращение к памяти с использованием сегментных регистров DS, ES, FS или
GS, когда они содержат нуль-селекторы;
• переключение на занятую задачу;
• переключение на незанятую задачу при выполнении команды IRET;
• использование селектора, который ссылается на дескриптор TSS в LDT
(дескрипторы TSS могут находиться только в GDT);
• нарушение правил защиты сегментов;
• превышение длины команды в 15 байт (такая ситуация может возникнуть при
использовании излишних префиксов);
• загрузка в регистр управления CR0 содержимого, в котором бит PG = 1
(страничное преобразование разрешено) при значении бита РЕ = 0
(защищенный режим запрещен).
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
Таблица 2.63
Условия недостоверности сегмента TSS
Условие Ицдекс кода ошибки
Предел сегмента TSS меньше 67h для 32-разрядного TSS или меньше 2Ch для
16-разрядного TSS Индекс селектора TSS
Неверный селектор LDT или LDT не присутствует Ицдекс селектора LDT
Селектор сегмента стека SS выходит за границу дескрипторной таблицы
Ицдекс селектора SS
Сегмент стека не записываемый Ицдекс селектора SS
DPL сегмента стека не равно CPL Ицдекс селектора SS
RPL селектора сегмента стека SS не равно CPL Ицдекс селектора SS
Селектор сегмента кода CS выходит за границу дескрипторной таблицы
Ицдекс селектора CS
Сегмент кода неисполняемый Индекс селектора CS
DPL неподчиненного сегмента кода не равно CPL Ицдекс селектора CS
DPL подчиненного сегмента кода больше, чем CPL Ицдекс селектора CS
Селектор сегмента данных DS, ES, FS или GS выходит за границу
дескрипторной таблицы Ицдекс селектора данных
Сегмент данных не допускает чтение Ицдекс селектора данных
• загрузка в регистр управления CR0 содержимого, в котором бит NW = 1 и
бит CD = 0;
• использование элемента таблицы IDT, который не является шлюзом
прерывания, шлюзом ловушки или шлюзом задачи;
• попытка в режиме виртуального 8086 передать управление обработчику
прерывания через шлюз ловушки или шлюз прерывания, когда сегмент кода
программы-обработчика имеет DPL > 0;
• попытка записать "1" в зарезервированные биты регистры управления CR4;
• попытка выполнить привилегированную команду, когда CPL № 0;
• попытка записать "1" в зарезервированные биты MSR регистров;
• использование шлюза, который содержит нуль-селектор;
• выполнение команды INTп, когда CPL > gDPL выбираемого шлюза;
• использование в дескрипторе шлюза селектора, который не ссылается на
сегмент команд;
• использование в команде LLDT операнда, который не является селектором
LDT или имеет значение бита TI = 1;
• использование в команде LTR операнда, который является локальным
селектором или ссылается на занятую задачу;
• попытка использовать нуль-селектор для межсегментных переходов;
• выборка процессором, работающим в режиме расширенной адресации
(установлено значение бита РАЕ = 1 в регистре CR4), указателя каталога
страниц, в зарезервированных полях которого имеются "1".
Исключение 14-ошибка обращения к странице (#PF). Имеет место при
страничном преобразовании адресов в следующих случаях:
• бит присутствия Р = 0 в указателе таблицы или страницы;
• нарушение правил защиты страниц.
РЕАЛИЗАЦИЯ ПРЕРЫВАНИЙ И ИСКЛЮЧЕНИЙ. ОБЕСПЕЧЕНИЕ ТЕСТИРОВАНИЯ И ОТЛАДКИ
31
- ^'^эвраиромм^У'^Р' | RSVD
U/S
W/R
Рис. 2.62. Формат кода ошибки для исключения #PF
Формат кода ошибки для этого исключения (рис. 2.62) содержит биты,
которые имеют следующее назначение:
Р = 0, если исключение вызвано отсутствием страницы, Р = 1, если
исключение вызвано нарушением правил защиты для страниц;
W/R = 0, если исключение произошло при чтении страницы, W/R = 1, если -
при записи на страницу;
U/S = 0, если исключение произошло при работе процессора в режиме
супервизора, U/S = 1, если исключение произошло при работе в режиме
пользователя;
RSVD = 0, если исключение #PF произошло из-за того, что процессор
Предыдущая << 1 .. 107 108 109 110 111 112 < 113 > 114 115 116 117 118 119 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed