Регистры общего назначения

В процессорах семейства восемь регистров общего назначения (РОН), которые могут содержать: сам операнд (т. е. использоваться в качестве накопителей); адрес операнда; адрес операнда с автоматической модификацией адреса (т. е. использоваться как указатели стека и элементов массивов); индексы (т. е. использоваться как индексные регистры в операциях переадресации).

Регистры 0 ... 5 могут произвольно использоваться программой, два остальных выполняют определенные функции в системе и не могут произвольно использоваться.

Регистр R6 выполняет функции указателя стека (УС), который применяется для хранения необходимой информации при организации вложенных процедур: обращении к подпрограмме и возврата из нее; передачи управления программе обработки (обработчику) прерываний и возврата управления прерванной программе. В первом случае в стеке сохраняется регистр связи из числа РОН, номер которого указан в команде обращения к подпрограмме. По команде возврата из подпрограммы содержимое этого регистра извлекается из стека (восстанавливается). Во втором случае в стеке автоматически сохраняются адрес возврата и содержимое РСП в момент прерывания. После окончания обработки по команде возврата из прерывания эта информация извлекается из стека, благодаря чему становится возможным продолжение прерванной программы. Стек, указателем которого является регистр R6, может быть использован для внутренних нужд программы, но при этом необходимо следить, чтобы его содержимое в конце программы совпадало с начальным, т. е. программа в конце должна восстанавливать указатель стека. Регистр R7 используется как счетчик команд (СК). Введение счетчика в число регистров общего назначения является оригинальным приемом, позволившим повысить гибкость адресации, по-новому решить проблему перемещаемости программ и др. Таким образом, обычная команда пересылки в регистр R7 эквивалентна команде безусловного перехода. Естественно, что регистр R7 также не может быть использован произвольно.

В ЭВМ «Электроника 79» введены два набора «истинных» РОН (R0 ... R5), содержимое которых может изменяться программой произвольно. Номер регистра, используемый в команде, по-прежнему принимает значения от 0 до 5, т. е. программы, написанные, например, для ЭВМ «Электроника 100-25» будут идти на одном наборе регистров, обеспечивая программную совместимость снизу вверх. Для перехода ко второму набору необходимо установить разряд 11 РСП (бит «набор РОН»). Таким образом, здесь используется расширение номера РОН; для смены набора необходимо модифицировать РСП. Подобные приемы широко используются в рассматриваемом семействе для расширения памяти, как оперативной, так и сверхоперативной, за пределы, устанавливаемые разрядностью и форматом команд (16 разрядов — адрес оперативной памяти, 3 разряда — номер РОН) с помощью специальных аппаратных средств, которые управляются дополнительными командами из базового набора команд; в данном случае для смены набора необходимо «перезагрузить» РСП.

Кроме того, в ЭВМ «Электроника 79» введены три стека в соответствии с режимами: внутренним, супервизора и пользователя. Для каждого стека используется свой РОН, но все они имеют один номер — 6, как и во всех ЭВМ семейства. Выбор РОН производится в соответствии с текущим режимом, определяемым разрядами 14, 15 РСП.