Основы программирования микропроцессоров



Download 1,87 Mb.
bet96/119
Sana23.02.2022
Hajmi1,87 Mb.
#139915
TuriКонтрольные вопросы
1   ...   92   93   94   95   96   97   98   99   ...   119
Bog'liq
Системное программирование

11.5. Идентификация прерываний


Архитектура микропроцессоров семейства 8086 не позволяет однозначно идентифицировать источники некоторых прерываний по вектору. Например, прерывание по вектору 0 может произойти по одной из следующих причин:

  • по обнаружению ошибки во время выполнения инструкций деления DIV и IDIV;

  • по инструкции INT 0;

  • при поступлении сигнала внешнего маскируемого прерывания, сопровождаемого передачей нулевого номера вектора прерывания.

Контроллер прерываний на базе микросхем типа 8259 фиксирует факт обслуживания прерывания по каждой из своих линий запросов прерываний. Обработчик прерывания должен проверить состояние соответствующего регистра контроллера прерываний, чтобы определить, является ли причиной прерывания внешний запрос или программное событие.
Если данному вектору прерывания не соответствует какая-либо линия запроса внешнего прерывания (IRQ), то и произойти это прерывание по внешнему запросу не могло. Рассмотрим способы анализа нескольких первых видов прерываний.
Прерывание по вектору 0. Сохранённый в стеке адрес будет указывать на команду деления, вызвавшую прерывание, в то время как при выполнении инструкции INT 0 – на следующую за ней инструкцию, которая также может оказаться командой деления. Необходимо проанализировать код команды, на которую указывает сохранённый в стеке адрес инструкции – если это не команда деления, то причиной прерывания является инструкция INT 0.
Если сохранён адрес команды деления, то требуется проверка её параметров. Если они окажутся корректными, то прерывание возникло из-за инструкции INT 0, непосредственно предшествующей команде деления. Если параметры некорректны, причиной могла послужить и предшествовавшая инструкция INT 0, и инструкция деления.
Прерывание по вектору 1. Чтобы определить, произошло ли прерывание по вектору 1 в результате трассировки выполнения программы с помощью флага TF или из-за выполнения инструкции INT 1, необходимо проверить состояние флага TF, сохранённом в стеке в процессе прерывания.
Если флаг сброшен, прерывание было вызвано инструкцией INT 1. Если флаг установлен, то имело место прерывание трассировки, что, однако, не исключает вероятности того, что одновременно была выполнена и инструкция INT 1. Однозначная идентификация в такой ситуации невозможна по той же причине, что и для вектора 0.

Download 1,87 Mb.

Do'stlaringiz bilan baham:
1   ...   92   93   94   95   96   97   98   99   ...   119




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish