цессор действует так, как будто
команды, но следующую уже проигнорирует. Вместо ее выполнения про-
цессор действует так, как будто следующая команда была вызовом про-
цедуры. Он сохраняет адрес очередной команды в стеке и переходит в
специальную процедуру, которую называют программой обработки
прерываний. Эта процедура содержит команды для работы с вызвавшим
прерывание устройством. В случае с клавиатурой программа обработки
прерывания считывает символ и сохраняет его для дальнейшего
использования. После того как она закончит работу с устройством,
происходит возврат в точку прерывания. Процессор извлекает из
стека адрес возврата и продолжает выполнение программы как будто
ничего не случилось.
Поскольку прерывание вызывается внешним устройством, оно может
произойти в любой момент выполнения программы. Программа не может
предпринять каких-либо действий чтобы подготовиться к прерыванию,
так как не может предвидеть, когда пользователь нажмет на клавишу
клавиатуры. Отсюда следует, что прерывание не должно изменять
данные в прерываемой программе. Если прерывание иозменит
какое-либо значение в программе, то она не сможет нормально
работать когда к ней вернется управление.
В ходе прерывания 8088 автоматически сохраняет некоторые уста-
новленные программой значения в стек. В свою очередь, программа
обработки прерываний отвечает за сохранение любых других данных,
которые она может изменить во время своего выполнения. Эти данные
обычно сохраняются в стеке. Затем, перед возвращением управления в
прерванную программу, программа обработки прерывания должна вернуть
измененным данным те значения, которые они имели в момент
прерывания. Факт возникновения прерывания должен остаться
"невидимым" для выполняемой программы.
Поскольку сигнал прерывания могут посылать процессору многие
устройстваэ, 8088 имеет механизм ориентации прерываний. Это озна-
чет, что 8088 определяет, какое устройство вызвало прерывание и пе-
Содержание Назад Вперед