КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Организация прерываний в ЭВМ. Назначение прерываний.Назначение прерываний. -Для того чтобы ЦП, выполняя свою работу, имел возможность реагировать на события, происходящие вне его зоны внимания, наступления которых он “не ожидает”, существует система прерываний ЭВМ Прерывание (англ. interrupt) — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код Принцип действия системы прерываний заключается в следующем: при выполнении программы после каждого рабочего такта микропроцессора изменяются содержимое регистров, счетчиков, состояние отдельных управляющих триггеров, т.е. изменяется состояние процессора. Совокупность значений наиболее существенных информационных элементов называется вектором состояния или словом состояния процессора (в некоторых случаях она называется словом состояния программы). Вектор состояния в каждый момент времени должен содержать информацию, достаточную для продолжения выполнения программы или повторного пуска ее с точки, соответствующей моменту формирования данного вектора. В зависимости от источника возникновения сигнала прерывания делятся на:
В зависимости от возможности запрета внешние прерывания делятся на:
Обработка прерываний.
После появления сигнала запроса прерывания ЭВМ переходит к выполнению программы - обработчика прерывания. Обработчик выполняет те действия, которые необходимы в связи с возникшей особой ситуацией. Время реакции - это время между появлением сигнала запроса прерывания и началом выполнения прерывающей программы (обработчика прерывания) в том случае, если данное прерывание разрешено к обслуживанию.
Команды прерываний.
INT (тип прерывания) Команда INT (прерывание) инициирует выполнение процедуры обработки прерывания, определенного в операнде "тип прерывания". Эта команда сохраняет в стеке регистр флагов, очищает флаги TF и IF для запрещения пошагового выполнения и маскируемых прерываний. Флаги сохраняются в том же формате, что и в команде PUSHF. Затем в стеке сохраняется текущее содержимое регистра сегмента кода CS, вычисляется адрес вектора прерывания путем умножения "типа прерывания" на четыре, и второе слово этого вектора помещается в регистр сегмента кода CS. Далее в стеке сохраняется текущее содержимое счетчика команд IP, и в этот регистр записывается первое слово вычисленного вектора прерывания. int 21h ;Вызов DOS для исполнения INTO Команда INTO (прерывание при переполнении) генерирует программное прерывание, если установлен флаг переполнения (OF), в противном случае управление передается следующей команде. Вектор прерывания INTO расположен по адресу 10h. Действие этой команды аналогично действию команды INT. IRET Команда IRET (возврат из прерывания) возвращает управление в точку, откуда прерывание было вызвано, заполняя из стека регистры IP, CS и регистр флагов. Команда IRET используется для выхода из процедур обработки как программных, так и аппаратных прерываний. DAA Команда DAA (десятичная коррекция сложения) приводит содержимое регистра AL к виду правильного упакованного десятичного числа после предшествующей команды сложения. Команда DAA изменяет значение флагов AF, CF, PF, SF и ZF; содержимое флага OF после выполнения команды DAA не определено. AAS Команда AAS (коррекция вычитания неупакованных десятичных чисел) корректирует результат предшествующего вычитания двух правильных неупакованных десятичных чисел. Операндом назначения в команде вычитания должен быть регистр AL. Команда AAS приводит значение в AL к виду правильного неупакованного десятичного числа; старший полубайт при этом обнуляется. Если результат вычитания оказывается меньше 0, выполняется декремент содержимого регистра АН. AAS воздействует на флаги AF и CF; Значение флагов OF, PF, SF и ZF после выполнения команды AAS не определено. и мн.др.
|