Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Организация прерываний в ЭВМ. Назначение прерываний.




Назначение прерываний.

-Для того чтобы ЦП, выполняя свою работу, имел возможность реагировать на события, происходящие вне его зоны внимания, наступления которых он “не ожидает”, существует система прерываний ЭВМ

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

Принцип действия системы прерываний заключается в следующем:

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

Совокупность значений наиболее существенных информационных элементов называется вектором состояния или словом состояния процессора (в некоторых случаях она называется словом состояния программы).

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

В зависимости от источника возникновения сигнала прерывания делятся на:

  • асинхронные или внешние (аппаратные) — события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши;
  • внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение, обращение к недопустимым адресам или недопустимый код операции;
  • программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания как правило используются для обращения к функциям встроенного программного обеспечения (firmware), драйверов и операционной системы.

В зависимости от возможности запрета внешние прерывания делятся на:

  • маскируемые — прерывания, которые можно запрещать установкой соответствующих битов в регистре маскирования прерываний;
  • немаскируемые (англ. Non maskable interrupt, NMI) — обрабатываются всегда, независимо от запретов на другие прерывания. К примеру, такое прерывание может вызвать сбой в микросхеме памяти.

Обработка прерываний.

 

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

 

Команды прерываний.

 

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 не определено.

и мн.др.

 


Поделиться:

Дата добавления: 2015-04-18; просмотров: 364; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты