Int 13h

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

!!! Важно подчеркнуть, что описанные действия процессора выполняются совершенно одинаково для всех видов прерываний - внутренних, аппаратных и программных, хотя причины, возбуждающие процедуру прерывания, имеют принципиально разную природу.

Большая часть векторов прерываний зарезервирована для выполнения определенных действий; часть из них автоматически заполняется адресами системных программ при загрузке системы.

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

  внутреннее прерывание, деление на 0;
0lh внутреннее прерывание, пошаговое выполнение (при TF=1);
02h немаскируемое прерывание (вывод NMI процессора);
08h аппаратное прерывание от системного таймера;
09h аппаратное прерывание от клавиатуры;
0Eh аппаратное прерывание от гибкого диска;
10h программное прерывание, программы BIOS управления видеосистемой;
13h программное прерывание, программы BIOS управления дисками;
16h программное прерывание, программы BIOS управления клавиатурой;
IDh не вектор, адрес таблицы видеопараметров, используемой BIOS
lEh не вектор, адрес таблицы параметров дискеты, используемой BIOS
21h программное прерывание, диспетчер функций DOS
22h программное прерывание, адрес перехода при завершении процесса, используемый DOS
23h программное прерывание, обработчик прерываний по <Ctrl>/C, используемый DOS;
25h программное прерывание, абсолютное чтение диска (функция DOS);
26h программное прерывание, абсолютная запись на диск (функция DOS);
60h...66h зарезервировано для программных прерываний пользователя;
68h...6Fh программные прерывания, свободные векторы;
70h аппаратное прерывание от часов реального времени (с питанием от аккумулятора);
76h аппаратное прерывание от жесткого диска;

Как видно из таблицы, векторы прерываний можно условно разбить на следующие группы:

· векторы внутренних прерываний процессора (0lh, 02h и др.);

· векторы аппаратных прерываний (08h...0Fh и 70h...77h);

· программы BIOS обслуживания аппаратуры компьютера (10h, 13h, 16h и др.);

· программы DOS (21h, 22h, 23h и др.);

· адреса системных таблиц BIOS (IDh, lEh и др.).

Таблица прерываний в реальном режиме состоит из 256 элементов, каждый из которых имеет длину в 4 байта и представляет собой дальний адрес (CS:IP) процедуры обработки прерываний.

Таблица прерываний реального режима всегда находится в фиксированном месте физической памяти — с начального адреса 00000 по адрес 003FF.

В защищенном режиме таблица прерываний носит название IDT (Interrupt Descriptor Table) и может располагаться в любом месте физической памяти. Ее начало (32-разрядный физический адрес) и размер (16 бит) можно найти в регистре системных адресов IDTR. Каждый из 256 элементов таблицы прерываний представляет собой 8-байтный дескриптор. В таблице прерываний могут находиться только дескрипторы определенного типа — дескрипторы шлюзов прерываний, шлюзов ловушек и шлюзов задач.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: