При облуживании прерываний используются блоки (см. рисунок 2.6.1): «Управление прерываниями»; «Управление последовательным вводом/выводом»; регистры W и Z блока регистров; 16-разрядный регистр счётчика команд РС (Program Counter - программный счётчик); 16-разрядный регистр указателя стека SP (Stack Pointer); схема изменения передаваемых через него слов (адресов) на +1 или -1 INC/DEC (Increment/Decrement – сложение/вычитание); регистр команд IR (Instruction Register).
Для работы со стеком предназначены дополнительно к регистру SP два регистра, находящиеся в блоке «Управление прерываниями» (см. рисунок 2.6.1) МП К1821ВМ85: SS – регистр сегмента стека и BP/EBR – регистр указателя базы кадра стека.
Размеры сегмента стека задаются при программировании, они зависят от режима работы процессора и для МП ВМ85 не могут превышать 64К. В каждый момент времени доступен только один стек, текущий, начальный (стартовый) адрес сегмента которого содержится в регистре SS. Для обращения к другому стеку, для «переключения» стека, необходимо загрузить в регистр SS другой адрес. В МПК РС-46М стек переключается по сигналам прерывания, каждому из которых соответствует стартовый адрес в соответствии с таблицей 3.6.1. Области ОЗУ, где находятся подпрограммы обслуживания прерываний (сегменты стека) не должны перекрываться.
Таблица 3.6.1 – Начальные (стартовые) адреса стека в оперативной памяти
