Найти в Дзене

Прерывания в работе ПК. Причины.

Перерывы в работе ПК. Перерыв - это время, при котором процессор останавливает обработку текущей (основной) программы и переходит к выполнению определенной задачи (другой программы) от службы к прерыванию. Цель прерываний. Прерывания особенно полезны при подключении устройств ввода-вывода, которые требуют или поставляют данные с более или менее низкой скоростью передачи. Таблица векторов прерывания ПК. Таблица векторов прерываний содержит адреса сервисных рутинных прерываний, выполняющих функции, связанные с прерываниями. При загрузке программы BIOS инициализируют векторную таблицу с адресами процедур, указанными в коде, в разделе ROM BIOS, а затем DOS и наши прикладные программы добавляют свои соответствующие векторы в векторы этой таблицы по мере их загрузки. Перебои в работе ПК. Когда происходит прерывание, независимо от источника, микропроцессор выполняет следующие действия: 1. Хранилища процессора нажимают флаг регистр в STACK. 2. ЦПУ сохраняет в STACK удаленный обратный адрес, с
Оглавление

Перерывы в работе ПК.

Перерыв - это время, при котором процессор останавливает обработку текущей (основной) программы и переходит к выполнению определенной задачи (другой программы) от службы к прерыванию.

Цель прерываний.

Прерывания особенно полезны при подключении устройств ввода-вывода, которые требуют или поставляют данные с более или менее низкой скоростью передачи.

Таблица векторов прерывания ПК.

Таблица векторов прерываний содержит адреса сервисных рутинных прерываний, выполняющих функции, связанные с прерываниями.

При загрузке программы BIOS инициализируют векторную таблицу с адресами процедур, указанными в коде, в разделе ROM BIOS, а затем DOS и наши прикладные программы добавляют свои соответствующие векторы в векторы этой таблицы по мере их загрузки.

Перебои в работе ПК.

Когда происходит прерывание, независимо от источника, микропроцессор выполняет следующие действия:

1. Хранилища процессора нажимают флаг регистр в STACK.

2. ЦПУ сохраняет в STACK удаленный обратный адрес, сегмент или множество, первым делом значение сегмента.

3. Процессор определяет причину прерывания, то есть считывает количество или тип прерывания и берет 4 байта вектора прерывания с адреса 0000:вектор*4.

4. Управление передается процессором в рутину, заданную в таблице векторов прерывания.

После выполнения этих шагов задействуется процедура обслуживания прерываний. Когда прерыватель хочет вернуть управление в основную программу, он должен выполнить команду IRET "Возврат прерывания". При возвращении из прерывания восстанавливается удаленный обратный адрес и флаги из STACK.

Работа с инструкциями INT и IRET.

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

Внутренние перерывы или исключения:

Они генерируются самим процессором при возникновении аномальной ситуации или в случае ее возникновения. К сожалению, IBM пропустила спецификацию Intel, которая оставляет от 0 до 31 прерываний для процессора.

 https://unsplash.com/photos/9moikpaufvg
https://unsplash.com/photos/9moikpaufvg

· INT 0.

Ошибка разделения, автоматически генерируемая, когда коэффициент не помещается в регистр или делитель равен нулю. Он может быть сгенерирован только DIV или IDIV.

· INT 1.

Шаг за шагом, происходит после каждой команды, когда процессор находится в режиме трассировки (используется при отладке программы).

· INT 2.

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

· INT 3.

Используется для задания точек останова при отладке программы, так как это однобайтовая команда, очень удобная в использовании.

· INT 4.

Переполнение, срабатывает при выполнении INTO и произошло переполнение.

· INT 5.

Диапазон превышен в инструкции BOUND (только 286 и выше). IBM был неправильно использован для сброса экрана на принтер.

· INT 6.

Неверный код работы (только с 286). Это происходит, когда выполняется независимая команда, CS. IP незаконной команды хранится в стеке.

· INT 7.

Устройство не доступно (только с 286).

Создаются самой программой с помощью команды INT для вызова определенных подпрограмм.

BIOS и DOS используют некоторые прерывания, которые могут быть вызваны определенными значениями в регистрах для выполнения определенных команд.

Они генерируются внешними периферийными устройствами через электрический сигнал. Внимание процессора запрашивается путем применения сигнала к его INT и NMI терминалов.

INT маски: активные на высоком уровне

Неподвижные предметы от NMI: активные в восходящем предке

 https://unsplash.com/photos/ute2XAFQU2I
https://unsplash.com/photos/ute2XAFQU2I