ВУЗ:
Составители:
Рубрика:
12
хранящийся по адресу 4*X, загружается в регистры адреса программы, т.е., регистры CS
и IP, и компьютер начинает выполнять программу обслуживания прерывания, которая
размещается по этому адресу.
Когда обработка прерывания заканчивается, программа обработки возвращает
управление программе, которая выполнялась в момент возникновения прерывания, спо-
мощью специальной команды IRET или "возврат из прерывания". Чтобы такой возврат мог
быть выполнен, необходимо сохранить в стеке текущие адреса программы до загрузки в
регистры CS и IP вектора прерывания.
ВкомпьютереPC имеется 256 различных прерываний, сномерамиот0 до 0хff. Для
хранения их адресов зарезервирована память с адресами от 0 до 0х400.
Некоторые из прерываний определены для использования процессором. Например,
прерывание 0 возникает при делении на 0. Другие определены для вызова функций
BIOS, третьи - для использования ДОС.
Иногда бывает необходимо, чтобы работа процессора не прерывалась, например,
при выполнении какой-либо критической операции. Для этого у микропроцессора имеет-
ся специальная команда, которая позволяет отложить обслуживание прерываний, запоми-
ная их, ипарнаяейкоманда, восстанавливающая нормальный режим обслуживания пре-
рываний. Когда прерывания запрещаются, запрос прерываний не теряется, он запоминает-
ся и будет обслуживаться, как только будут разрешены прерывания.
Обычно прерывания не запрещаются на сколько-нибудь продолжительное время.
Прерывания допустимо запрещать лишь на очень короткие промежутки времени, необ-
ходимые для выполнения некоторых внутренних операций процессора, состоящих из не-
большого числа команд. Типичным примером таких операций, которые не могут быть
прерваны на полпути, может служить загрузка нового набора значений в регистры сег-
ментов. Поскольку эти регистры необходимы для правильной работы любой программы,
нарушение согласованности загрузки в них значений может привести к полной неразбери-
хе, поэтому необходимо запретить прерывания на время загрузки в них новых адресов.
Существуют три типа прерываний, которые получили названия аппаратных, логи-
ческих и программных. Между ними нет принципиальной разницы, но использование раз-
деляет их на три отдельных категории.
Аппаратные прерывания вырабатываются устройствами, требующими внимания
процессора. В IBM/PC таких прерываний несколько. Во-первых, имеется так называемое
немаскируемое прерывание, используемое для сообщения об отказе питания, оно имеет
номер 2. Далее, прерывание 8 используется таймером, номер 9-клавиатурой и 14 - кон-
тролером гибких дисков.
Имеется также семь зарезервированных номеров прерываний,6,7,с 10 по 13 и 15,
которые могут быть использованы в дальнейшем, если возникнет необходимость в допол-
нительных аппаратных прерываниях. Два из этих семи прерываний уже нашли свое на-
значение, прерывание 12 зарезервировано для адаптера связи, а прерывание 15 - для ин-
терфейса устройства печати.
Логические прерывания формируются самим процессором, когда он встречает ка-
кое-либо необычное условие. Таких прерываний предусмотрено четыре. Прерывание 0
Страницы
- « первая
- ‹ предыдущая
- …
- 10
- 11
- 12
- 13
- 14
- …
- следующая ›
- последняя »