Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
ПрерыванияНазначение системы прерываний - реагировать на определенные события переключением процессора с выполнения текущей программы на выполнение другой программы, обслуживающей соответствующую ситуацию с последующим возвратом к исходной программе так, будто прерывания и не было. По источнику возникновения прерывания делятся на программные, внутренние прерывания процессора и аппаратные (внешние). Программные прерывания вызываются командой INT xx и позволяют легко вызывать общеупотребительные процедуры, например сервис DOS и BIOS. Внутренние прерывания генерирует сам МП при делении на ноль, переполнении и работе в пошаговом режиме. Аппаратные прерывания запрашиваются внешними устройствами и делятся на маскируемые (могут быть запрещены в процессоре) и немаскируемые (соответственно не могут быть запрещены в процессоре, но их источник может быть программно заблокирован во внешнем контроллере). Им соответствуют два входа: NMI (NonMaskable Interrupt - немаскируемое прерывание) - используется для сигнализации МП о катастрофическом событии, требующем немедленной реакции, например, аварийном отключении питания, ошибке контроля четности в оперативной памяти или ПУ и др. и INTR (maskable INTeRrupt), на который подаются запросы на прерывание от ПУ через программируемый контроллер прерываний (ПКП) (т. к. вход один, а ПУ несколько). Более подробно работу ПКП рассмотрим позднее. Каждому прерыванию соответствует свой номер, называемый вектором прерывания. Этот номер указывает на таблицу с адресами программ обработки прерываний. Таблица размещается в младших адресах памяти. Каждой программе в ней отводится два 16-разрядных слова, младшее из которых содержит смещение, а старшее - сегмент. Всего имеется 256 векторов. Действия МП при получении сигнала INT (запрос внешнего маскируемого прерывания) - МП завершает выполнение текущей команды (кроме цепочечных команд и WAIT, в течение которых запрос распознается) и проверяет флаг разрешения прерывания. Если прерывания разрешены, МП выдает сигнал подтверждения прерывания. - ПУ, запросившее прерывание, передает в процессор по шине данных вектор прерывания. - Процессор принимает вектор и использует его в качестве адреса (умножив на 4) для обращения к зоне оперативной памяти, содержащей значения сегмента и смещения адреса программы обработки прерывания (таблице векторов прерывания). - Текущие значения сегмента, смещения, флагов и регистров, которые будут использоваться программой обработки запоминаются в стеке для восстановления прерванной программы, а вместо них заносятся выбранные из таблицы векторов значения и начинает выполняться программа обработки прерывания. - Команда IRET, завершающая программу обработки прерывания, восстанавливает прежнее состояние МП. При программных прерываниях не выполняются циклы подтверждения прерывания. Прерывание также может быть прервано. Это т. н. «вложенные прерывания».
|