Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GEK / Перечень вопросов Архитектура_2.docx
Скачиваний:
80
Добавлен:
18.05.2015
Размер:
5.89 Mб
Скачать

Порядок обслуживания прерываний

ЦП, обнаружив сигнал прерывания, помещает в машинный стек слово состояния программы (определяющее различные флаги ЦП), регистр программного сегмента (CS) и указатель команд (IP) и блокирует систему прерываний. Затем ЦП с помощью 8-разрядного числа (номера прерывания), установленного на системной магистрали прерывающим процессом, извлекает из таблицы векторов адрес обработчика и возобновляет выполнение с этого адреса.

При наличии нескольких источников запросов прерывания должен быть установлен определенный порядок (дисциплина) в обслуживании поступающих запросов. Другими словами, между запросами (и соответствующими прерывающими программами) должны быть установлены приоритетные соотношения, определяющие, какой из нескольких поступивших запросов подлежит обработке в первую очередь, и устанавливающие, имеет право или не имеет данный запрос (прерывающая программа) прерывать ту или иную программу. Если наиболее приоритетный из выставленных запросов прерывания не превосходит по уровню приоритета выполняемую процессором программу, то запрос прерывания игнорируется или его обслуживание откладывается до завершения выполнения текущей программы. Каждому прерыванию соответствует определенный номер, который и определяет приоритет. Более приоритетным считается запрос с меньшим номером, т.е. наибольший приоритет имеет запрос прерывания с номером 0, а наименьший – запрос с номером 255.

Состояние системы в момент передачи управления обработчику прерываний совершенно не зависит от того, было ли прерывание возбуждено внешним устройством или явилось результатом выполнения программой команды INT. Это обстоятельство удобно использовать при написании и тестировании обработчиков внешних прерываний, отладку которых можно почти полностью выполнить, возбуждая их простыми программными средствами.

Аргументы передаются обработчикам прерываний через регистры или стек.

  1. Программная модель микропроцессора x86. Классификация, перечень и назначение пользовательских регистров.

Под программной моделью микропроцессора понимается та его часть, которая оставлена видимой и доступной для программирования. Мы рассмотрим программную модель на примере процессора i80486, который содержит 32 регистра в той или иной мере доступных для использования программистом. Данные регистры можно разделить на две большие группы:

  • 16 пользовательских регистров, которые пользователь может свободно использовать в своих программах для реализации поставленной задачи;

  • 16 системных регистров регистры, предназначенных для поддержки различных режимов работы, сервисных функций.

Регистрами называются области высокоскоростной памяти, расположенные внутри процессора в непосредственной близости от его исполнительного ядра. Доступ к ним осуществляется несравнимо быстрее, чем к ячейкам оперативной памяти. Соответственно, машинные команды с операндами в регистрах выполняются максимально быстро.

К пользовательским регистрам относятся:

  • восемь 32-битных регистров, которые могут использоваться программистами для хранения данных и адресов. Их называют регистрами общего назначения (РОН):

  • EAX/AX/AH/AL;

  • EBX/BX/BH/BL;

  • EDX/DX/DH/DL;

  • ECX/CX/CH/CL;

  • ESI/SI;

  • EDI/DI;

  • ESP/SP;

  • EBP/BP;

  • шесть сегментных регистров:

    • CS;

    • DS;

    • SS;

    • ES;

    • FS;

    • GS;

  • регистры состояния и управления:

    • регистр флагов EFlags/Flags;

    • регистр указателя команды EIP/IP.

Рис. 1.3 Пользовательские регистры микропроцессора i486

Многие из имен регистров приведены с наклонной разделительной чертой. Следует заметить, что это не разные регистры — это части одного большого 32-разрядного регистра. Их можно использовать в программе как отдельные объекты. Так сделано для обеспечения работоспособности программ, написанных для младших 16-разрядных моделей микропроцессоров фирмы Intel, начиная с i8086. Микропроцессоры i486 и Pentium имеют в основном 32-разрядные регистры. Их количество, за исключением сегментных регистров, такое же, как и у i8086, но размерность больше, что и отражено в их обозначениях — они имеют приставку E (Extended).

Рассмотрим состав и назначение пользовательских регистров.