КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Механизм обработки прерываний
Программирование контроллера прерываний Сигналы, поступающие от различных периферийных устройств, должны быть обработаны какой-либо программой. Узнать о сигналах, требующих обслуживание, микропроцессор может различными способами: - Путем принудительной периодической остановки выполнения текущей программы и выполнения процедур, проводящих опрос устройств и запускающих необходимые программы для обслуживания этих устройств. - Путем создания системной очереди на обслуживание. Такой подход предполагает некую очередь, в которую выстраиваются запросы на обслуживание от устройств. Микропроцессор периодически просматривает очередь и выполняет обслуживание запросов. - На основе механизма прерывания, который позволяет обеспечить наиболее эффективное управление внешними устройствами и программами. Цифровые устройства, построенные на основе архитектуры IBM PC, используют механизм прерываний. Прерывания приостанавливают выполнение программы для выполнения специальных системных действий. Необходимость прерываний обусловлено двумя причинами: преднамеренный запрос на выполнение операций ввода-вывода на различные внешние устройства и обработка непредвиденных программных ошибок. Обработка прерываний микропроцессором производится в три этапа: - прерывание выполнения текущей программы; - переход к выполнению подпрограммы обработки прерывания; - возврат управления прерванной программе. Любая программа, загруженная на выполнение, занимает в памяти отдельное от других программ адресное пространство. Регистры являются разделяемыми ресурсами для микропроцессора, поэтому их содержимое нужно сохранять при переключении задач. Закончив выполнение инструкции, в ходе которого возник запрос на прерывание, в стеке сохраняется содержимое регистра флагов и регистровой пары CS:IP. В регистре флагов сбрасываются флаги разрешения прерывания IF и трассировки TF. Этим обеспечивается блокировка возникновения новых маскируемых внешних прерываний (см. раздел 2.2) и запрещаются пошаговые прерывания по выполнении каждой инструкции. Затем в регистровую пару CS:IP загружается адрес подпрограммы обработки прерыванияISR (Interrupt Subroutine), которой и передается управление. Адреса подпрограмм прерываний называют векторами, а их совокупность – таблицей векторов прерыванийIVT (Interrupt Vector Table). Каждый вектор размещается в 4 байтах. Старшее слово адреса содержит значение сегмента CS, младшее – смещение IP. Первые 1024 байта оперативной памяти содержат векторы прерываний. Всего доступно 256 векторов. Вектор для прерывания 0 начинается с ячейки памяти 0000:0000, для прерывания 1 – с ячейки 0000:0004, 2 – с ячейки 0000:0008 и т.д. Каждый элемент таблицы указывает на подпрограмму обработки указанного типа прерывания. В табл. 91 описаны вектора таблицы прерываний. После выполнения подпрограммы обработки прерывания следует восстановить состояния прерванной программы. Для этого всегда последней командой подпрограммы обработки прерывания указывается машинная команда IRET. По этой команде микропроцессор извлекает из стека последовательно три слова и помещает их, соответственно в регистры IP, CS и регистр флагов. В результате после выполнения подпрограммы обработки прерываний регистровая пара CS:IP будет содержать адрес следующей команды прерванной программы, а регистр флагов – состояние флагов на момент передачи управления ISR.
Табл. 91. Основные прерывания таблицы векторов.
Дата добавления: 2014-11-16; Просмотров: 584; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |