Исследование индикаторов. Солдатов А.И - 86 стр.

UptoLike

88
Прерывания
При возникновении прерывания регистр страницы SFR
автоматически переключится на ту страницу SFR, которая содержит
флаг, вызвавший прерывание. Функция автоматического переключения
SFR страницы просто освобождает процедуру обслуживания
прерывания от необходимости переключать SFR страницы. После
выполнения команды RETI SFR страница автоматически восстановится,
то есть будет установлена та SFR страница, которая использовалась до
прерывания. Старшим байтом стека является SFRPAGE, текущая SFR
страница. Вторым байтом стека SFR страниц является SFRNEXT.
Третьим (младшим) байтом стека SFR страниц является SFRLAST
рисунок 3. При возникновении прерывания текущее значение SFRPAGE
загружается в регистр SFRNEXT, а значение SFRNEXT загружается в
регистр SFRLAST. Затем в регистр SFRPAGE аппаратно записывается
номер той SFR страницы, которая содержит флаг, вызвавший
прерывание. При возврате из прерывания стек SFR страниц
«выталкивается», в результате чего значение из SFRNEXT возвращается
в регистр SFRPAGE, то есть номер SFR страницы восстанавливается без
вмешательства со стороны программы. Значение из SFRLAST
помещается в регистр SFRNEXT. При необходимости в процедуре
обслуживания прерывания можно модифицировать значения,
сохраненные в регистрах SFRPAGE и SFRLAST, тогда при выполнении
команды RETI произойдет возврат на другую SFR страницу.
Модификация регистров в стеке SFR страниц не приведет к
«проталкиванию» стека. Лишь вызов прерывания и возврат из
прерывания могут инициировать операции загрузки/извлечения стека
SFR страниц.
Автоматическое аппаратное переключение страниц SFR можно
разрешить или запретить, используя бит разрешения автоматического
управления страницами SFR, размещенный в регистре управления
страницами SFR. После сброса эта функция по умолчанию разрешена.
Таким образом, функция автоматического переключения SFR страниц
будет включена до тех пор, пока не будет отключена в программе.