Assembler для начинающих


Векторы прерываний - часть 2


    сохранит сегмент и смещение текущей команды в программе. Кроме того
    возврат из программы обработки прерывания должен вернуть машину в
    точности в то состояние, в котором она была в момент возникновения
    прерывания. Чтобы помочь в этом, микропроцессор 8088 также
    сохраняет регистр флагов в стеке. Это означает, что эти действия
    уже не придется выполнять каждой программе обработки прерываний.
    Сохранение регистра флагов означает также сохранение и текущего
    состояния флага разрешения прерываний. Принятие внешнего прерывания
    сбрасывает флаг разрешения прерывания, так что программа обработки
    прерывания уже не может быть прервана другим прерыванием. Команда
    возврата из прерывания, которая восстанавливает регистр флагов,
    автоматически деблокирует систему прерываний восстановлением флага
    прерываний в состояние предшествующее возникновению прерывания.
 
      Когда возникает прерывание, микропроцессор помещает в стек
    региср флагов, за которым следуют регистры CS и IP. 8088 использует
    номер прерывания, чтобы считать указатель на программу обработки
    прерывания, и передать ей управление. Теперь уже эта программа
    отвечает за сохранение регистров, которые она использует, и
    восстановление их перед возвратом управления в прерванную
    процедуру. Для возврата из прерывания используется специальная
    команда IRET. Она извлекает верхние три слова из стека и помещает
    их в регистры IP, CS и регистр флагов. В следующих главах мы
    приведем несколько примеров, использующих механизм прерываний.
 
      Программист может использовать механизм прерывания
    непосредственно, без запроса внешних прерываний. Существуют
    команды, которые заставляют микропроцессор работать так, как будто
    при их выполнения возникло внешнее прерывание. Такие действия
    называются программными прерываниями, так как они порождаются
    программами, но имитируют действия обычных прерываний. Процессор
    помещает все три управляющих регистра в стек и выбирает вектор



- Начало -  - Назад -  - Вперед -



Книжный магазин