
20.08.2007, 00:28
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
Инструкиця 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. Процессор генерирует их сам, если произойдет определенное событие.
|
|
|