Показать сообщение отдельно

  #7  
Старый 20.08.2007, 00:28
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

Инструкиця INT xx делает следующее:

1) Если она выполняется в реальном режиме, то ее псевдокод такой:
pushf
push cs
push ip
// из слова 0:[xx<<4] берется сегмент, из слова 0:[xx<<4 + 2] берется смещение и выполняется дальний переход на этот адрес - обработчик прерывания.

2) Если она выполняется в защищенном режиме, то ее псевдокод такой:
pushfd
push cs
push eip
// проверка защиты
// смена уровня привилегий если нужно
// прыжок на адрес, задаваемый селектором IDT[xx].Selector и смещением IDT[xx].Offset

В двух словах оно нужно для передачи управления некоторой фиксированной системной процедуре для выполнения определенного действия.

В DOS/Windows системные апи реализованы в виде прерываний (в Windows только до XP, дальше идет другой механизм).

BIOS устанавливает свои обработчики для аппаратных сервисов.

Еще кроме программных прерываний есть аппаратные прерывания. Например: 1 или 3. Процессор генерирует их сам, если произойдет определенное событие.
 
Ответить с цитированием