Главная Случайная страница


Полезное:

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


Категории:

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






Прерывания





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

По источнику возникновения прерывания делятся на программные, внутренние прерывания процессора и аппаратные (внешние). Программные прерывания вызываются командой INT xx и позволяют легко вызывать общеупотребительные процедуры, например сервис DOS и BIOS. Внутренние прерывания генерирует сам МП при делении на ноль, переполнении и работе в пошаговом режиме. Аппаратные прерывания запрашиваются внешними устройствами и делятся на маскируемые (могут быть запрещены в процессоре) и немаскируемые (соответственно не могут быть запрещены в процессоре, но их источник может быть программно заблокирован во внешнем контроллере).

Им соответствуют два входа: NMI (NonMaskable Interrupt - немаскируемое прерывание) - используется для сигнализации МП о катастрофическом событии, требующем немедленной реакции, например, аварийном отключении питания, ошибке контроля четности в оперативной памяти или ПУ и др. и INTR (maskable INTeRrupt), на который подаются запросы на прерывание от ПУ через программируемый контроллер прерываний (ПКП) (т. к. вход один, а ПУ несколько). Более подробно работу ПКП рассмотрим позднее.

Каждому прерыванию соответствует свой номер, называемый вектором прерывания. Этот номер указывает на таблицу с адресами программ обработки прерываний. Таблица размещается в младших адресах памяти. Каждой программе в ней отводится два 16-разрядных слова, младшее из которых содержит смещение, а старшее - сегмент. Всего имеется 256 векторов.

Действия МП при получении сигнала INT (запрос внешнего маскируемого прерывания)

- МП завершает выполнение текущей команды (кроме цепочечных команд и WAIT, в течение которых запрос распознается) и проверяет флаг разрешения прерывания. Если прерывания разрешены, МП выдает сигнал подтверждения прерывания.

- ПУ, запросившее прерывание, передает в процессор по шине данных вектор прерывания.

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

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

- Команда IRET, завершающая программу обработки прерывания, восстанавливает прежнее состояние МП.

При программных прерываниях не выполняются циклы подтверждения прерывания.

Прерывание также может быть прервано. Это т. н. «вложенные прерывания».

 

 

Date: 2015-09-02; view: 396; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию