Программирование на JAVA

В нашем случае роль таковой выполняет подпрограмма PRINT. Прерывания очень похожи на вызовы подпрограмм. Предположим, что запрос прерывания по­ступает во время выполнения команды i (рис. 7.5). Процессор завершает выпол­нение этой команды, а затем загружает в счетчик команд адрес первой команды программы обработки прерываний. Для упрощения задачи предположим, что этот адрес аппаратно закреплен в процессоре. После выполнения программы об­работки прерываний процессор должен вернуться к команде i + 1. Для этого пе­ред вызовом программы обработки прерывания содержимое регистра PC должно быть временно сохранено в памяти. Команда возврата из прерывания, располо­женная в конце программы обработки прерывания, загрузит этот сохраненный адрес в регистр PC, в результате чего выполнение будет продолжено с команды i + 1. Во многих компьютерах адрес возврата сохраняется в стеке процессора. Но он может быть сохранен и в другом месте, например, в специально для него пред­назначенном регистре.


Рис. 7.5. Передача управления через прерывания

Обрабатывая прерывание,


<< назад вперед >>