КАТЕГОРИИ: Архитектура-(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) |
Механизм прерываний
Лекция 8 Таблица векторов прерываний Совокупность всех векторов прерываний образует т.н. таблицу векторов прерываний. Таблицы векторов указанных выше МПК относятся к двум разным типам таблиц векторов. Для таблицы векторов прерываний IBM PC (МПК на основе Intel 80x86, К1810ВМ86) характерно, что каждый вектор представляет собой полный адрес соответствующей ему программы обработки прерываний. Указанная таблица содержит 256 векторов (в т.ч. до 15 аппаратных). Примерный вид таблицы векторов представлен в таблице 4. Область векторов 20h-FFh называется пользовательской, т.е. предназначена для размещения векторов, обслуживающих прерывания от различных дополнительных периферийных устройств. Каждый вектор прерывания состоит из 2-х слов. Первое слово (младший адрес) содержит смещение IP, второе слово (старший адрес) – кодовый сегмент CS адреса программы обработки прерываний. Вектора из таблицы 3 являются частью таблицы 4 векторов для IBM PC. Таблица 4
Для таблицы векторов прерываний микроконтроллера Siemens SAB C167 характерно, что каждый вектор представляет собой два слова памяти, содержимое которых не регламентировано. Обычно здесь размещают инструкцию безусловного перехода на программу обработки прерывания, предназначенную для обслуживания соответствующего вектора. Таблица векторов для микроконтроллера Siemens SAB C167 содержит 56 векторов, а ее примерный вид представлен в таблице 5. Таблица 5
В каждой таблице прерываний адрес расположения вектора прерывания связан с его номером соотношением: Адрес вектора = Номер вектора * Шаг таблицы векторов. В обеих таблицах 4 и 5 шаг таблицы векторов равен 4 (байта). Механизм прерываний рассмотрим на примере МПК Intel 80x86. На рис. 9 представлена схема взаимодействия процессора, таблицы векторов прерываний и стека. Стеком называется специально выделяемая при инициализации МПК область ОЗУ, в которой хранятся временные данные по принципу «первый вошел - последний вышел». Процесс прерывания работы процессора реализован аппаратно и может быть представлен в виде трех шагов. Шаг 1. В момент прерывания выполнение текущей программы останавливается и в стеке запоминается вектор прерванного процесса. Вектор прерванного процесса – это совокупность содержимого регистра флагов FLAGS и адреса возврата к прерванной точке программы. Адрес возврата равен содержимому счетчика команд IP и регистра кодового сегмента CS на момент прерывания. Шаг 2. В счетчик команд IP и в регистр кодового сегмента CS заносится содержимое ячеек памяти вектора прерываний, соответствующего номеру возникшего прерывания. В соответствии с новым содержимым регистров IP и CS происходит переход на программу обработки прерывания и начинается ее выполнение. Шаг 3. По достижении последней команды программы обработки прерываний, которой должна быть команда IRET, происходит перенос вектора прерванного процесса из стека в соответствующие регистры процессора. В результате восстанавливается состояние процессора на момент прерывания и продолжается выполнение прерванной программы. Следует заметить, что изменение содержимого регистров общего назначения AX, BX,CX,DX в процессе прерывания аппаратно не контролируется. Контроль за сохранностью их содержимого возлагается на программиста и должен осуществляться в ПОП.
Дата добавления: 2014-12-16; Просмотров: 472; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |