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


         

особой ситуации от микросхемы 8087


    особой ситуации от микросхемы 8087 подключен ко входу
    немаскируемого прерывания NMI (Non Maskable Interrupt).  Это то же
    самое прерывание, которое сигнализирует об ошибке четности.
 
      В качестве примера особой ситуации рассмотрим упомянутое выше
    переполнение стека.  Если программа помещает в стек девятый объект,
    сопроцессор 8087 отвечает прерыванием по особой ситуации.  Если это
    прерывание не разрешено, сопроцессор 8087 отмечает операцию как
    недействительную и дает результат со специальным значением,
    известным как NAN (Not A Number, не число).  Если вы собираетесь
    выполнять сложные вычисления, требующие более восьми позиций стека,
    то можете выгодно использовать прерывание по этой особой ситуации.
    Когда возникает переполнение стека, обработчик этого прерывания
    может удалить нижние элементы стека, используя команды записи.
    Затем программа освобождает эти позиции стека для дальнейшего
    использования.  Существует также и соответствующее прерывание по
    исчерпыванию стека, которое возникает при использовании пустой
    позиции стека; подпрограмма обработки прерывания может обрабатывать
    и эту ситуацию:  она может восстановить прежнее состояние стека из
    области сохранения.
 
      Далее мы увидим, что микросхема 8087 содержит информацию о
    своем состоянии, что делает возможным обработать особые ситуации в
    обработчике прерываний.  Микросхема 8087 имеет исчерпывающую
    информацию о команде, которая вызвала особую ситуацию.

Содержание  Назад  Вперед