Навигация

Ярославский химико-механический техникум



Flash - технологии в помощь преподавателю. Фрагмент системы дистанционного обучения ЯХМТ. Часть2:Аппаратные прерывания 16-битных процессоров.



Для просмотра третьей части кликните ссылку: Часть третья
Для возврата к первой части кликните ссылку: Часть первая

Прерывания

Прерывание это нарушение естественного хода выполнения программы, вызывающее другую программу, для обслуживания, например, аппаратных частей компьютера. После обработки прерывания процессор должен вернуться к выполнению прерванной программы, т.е. вернуться в то же состояние, в котором он был до вызова прерывания. В отличие от вызова обычной программы, для которой нужно указать адрес CS:IP, прерывание вызывается по номеру прерывания (однобайтное целое число от 0 до 255 или в шестнадцатеричном коде от 00h до FFh). Для каждого номера прерывания задается дальний адрес (вектор) CS:IP. Таким образом, вектор занимает 4 байта памяти. Все вектора сведены в системную таблицу векторов, которая располагается в памяти по адресу 0000:0000 и занимает 1 Кбайт памяти. Т.к. каждый вектор занимает 4 байта, то для нахождения нужного вектора, а следовательно и адреса, необходимо номер прерывания умножить на 4.

Для возврата к прерванной программе процессору необходимо предварительно сохранить значения регистров CS, IP и Flags в стеке, а после обработки прерывания загрузить обратно эти значения регистров по инструкции IRET которой заканчивается любая программа обработки прерывания.

По механизму вызова прерывания бывают 3-х типов:

  • Внутренние прерывания. Вызываются самим процессором в особых состояниях. Для процессора 8086 их всего три: попытка деления на ноль, переполнение и трассировка (пошаговое выполнение программы для ее отладки). Номер прерывания в этих случаях задает сам процессор.

  • Аппаратные прерывания предназначены для обслуживания аппаратных частей компьютера. Они в свою очередь бывают двух видов: немаскируемые и маскируемые. Немаскируемые прерывания вызываются подачей электрического сигнала на вход NMI процессора со стороны схем контроля паритета памяти и линий контроля шины ISA и выполняются при любом значении флага IF. Для этого прерывания вектор фиксирован 01h. Маскируемые прерывания используются для сигнализации о событиях в устройствах. Обработка сигналов запросов прерывания выполняется контроллером прерываний, который позволяет организовать систему приоритетов запросов от различных входов. При прерываний поступлении запроса контроллер подает электрический сигнал на вход INTR процессора. Процессор сбрасывает флаг разрешения прерываний IF и запрашивает у контроллера номер прерывания.

  • Программные прерывания вызываются инструкцией INT в программе и таким образом не являются прерываниями, а названы так потому что с помощью их программист может обратиться к аппаратным или системным ресурсам компьютера. За инструкцией INT должен следовать номер прерывания.

А.М. Гелоян



Скачать flash-ролик (Часть вторая) (248Kb)
Скачать полный flash-ролик (336Kb)

Кто работает в Центре?

Адрес: 150023, Россия, г. Ярославль, ул. Гагарина,дом 8
Тел. (0852) 44-44-63 (приемная комиссия), (0852) 44-84-74 (заочное отделение), (0852) 30-61-71 (секретарь)
Факс: (0852) 30-61-71, E-mail: yxmt@yaroslavl.ru

Hosted by uCoz