Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Замечания.




Для некоторых номеров прерываний в реальном режиме возможны 2 источника прерывания (развитие микропроцессоров).

Некоторые прерывания при своем воз­никновении дополнительно генерируют и записывают в стек так называемый код ошибки. Этот код может впоследствии использоваться для установления источника прерывания. Код ошибки записывается в стек вслед за содержимым регистров eflags, cs и eip.

Þ можно распознать истинный источник прерывания (если есть неоднозначность).

 

Таблица дескрипторов прерываний IDT

 

Вместо таблицы векторов прерываний система прерываний имеет дело с таблицей дескрипторов прерываний (IDT, interrupt descriptor table)

 

Таблица IDT связывает каждый вектор прерывания с дескриптором процедуры или задачи, которая будет обрабатывать это прерывание.

Элементами таблицы IDT являются дескрипторы - Размер дескриптора = 8 байтам.

(Т.е. формат таблицы IDT подобен формату GDT и LDT.)

Дескрипторы в таблице прерываний обычно называются шлюзами (иногда коммутаторами).

Шлюзы предназначены для указания точки входа в программу обработки пре­рывания.

В дескрипторной таблице прерываний IDT могут содержаться шлю­зы трех типов:

· шлюз ловушки;

· шлюз прерывания;

· шлюз задачи.

Физически микропроцессор отличает шлюзы по со­держимому полей.

 

Особенности таблицы IDT:

· нулевой дескриптор используется для описания шлюза для программы обработки исключительной ситуации 0 (ошибка деления);

(в таблице GDT отсутствует)

· дескрипторы в таблице IDT строго упорядочены в соответствии с номерами прерываний.

В таблицах GDT и LDT порядок описания дес­крипторов роли не играет, хотя и допускается наличие некоторых соглаше­ний по их упорядоченности;

· размерность таблицы IDT — не более 256 элементов размером по восемь байт, по числу возможных источников прерываний.

В отдельных случаях есть смысл описывать все 256 дескрипторов этой таблицы, формируя для неиспользуемых номеров прерываний шлюзы-заглушки. Это позволит кор­ректно обрабатывать все прерывания, даже если они и не планируются к использованию в данной задаче. Если этого не сделать, то при незапланированном прерывании с номером, превышающим пределы IDT для данной зада­чи, будет возникать исключительная ситуация общей защиты (с номером 13 (ODh)).

 

Адрес и длина таблицы IDT содержатся в регистре idtr.

Заметим, что в реальном режи­ме регистр idtr также содержит адрес таблицы прерываний, но при этом каждый вектор занимает 4 байта и содержит 32-разрядный адрес в формате CS:IP. Начальное значение этого регистра равно нулю, но внего можно занести и другое значение.

!

Þ Возможно произвольное размещение в памяти этой таблицы не только в за­щищенном режиме, но и реальном.

 

В защищенном режиме произвести загрузку регистра idtr может только код с максимальным уровнем привилегий.

!

 

Доступ к таблице IDT со стороны пользовательских (прикладных) программ невозможен.


Поделиться:

Дата добавления: 2015-02-10; просмотров: 104; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты