|
|
|
|
Программные прерывания. Прерывания от таймера.
Для процессоров 80х86 механизм программных прерываний обеспечивает команда INT (обработка прерываний). Процессор одинаково обрабатывает программные и
аппаратные прерывания. При исполнении команда INT передает управление ISR, специфицированной операндом команды. Например, команда int 60h вызывает
подпрограмму обработки прерываний, адрес которой записан в IVT со смещением 180h (4х60h). Контроллер прерываний не включается и ISR не посылает EOI
контроллеру прерываний. DOS широко использует программные прерывания. Поскольку все обращения к ISR осуществляются через IVT, заменить подпрограмму
обработки прерываний несложно. Вы будете часто иметь повод для модификации IVT при написании резидентных программ.
PC использует один канал интегральной схемы 8253 счетчика/таймера для запроса прерываний 18,2 раза в секунду. Контроллер 8259A в ответ на этот
запрос генерирует прерывание int 8h. Это прерывание по таймеру имеет высший приоритет и будет вытеснять любые другие прерывания до тех пор, пока не
будут заблокированы все прерывания командой CLI (очистка прерываний).
Это прерывание обычно обслуживает программа ROM-BIOS. После обновления времени суток и выполнения некоторых других служебных задач, программа
ROM-BIOS выполняет команду int 1Ch. Программы, которые должны выполняться периодически, могут установить свою собственную подпрограмму обработки
прерывания int 1Сh. По умолчанию подпрограмма обработки прерывания int 1Сh ROM-BIOS содержит команду IRET.
|
|