Добавление второго «половинного адреса»
Таким образом, в подпрограмме будет выполняться операция с содержимым ячейки 1050. Если же в адресной части ячейки 518 было бы записано следующее выражение: 1050 + , то выполнение операции сложения было бы опять отложено, а в адресную часть команды было бы записано содержимое адресной части ячейки 1050. Команда содержит два признака: «штрих» и «плюс».
Таким образом, может быть реализована выборка вида «адрес адреса адреса…», подобно используемым в языке составляющей программы ИТ выражениям вида «индекс индекса…». Добавление второго «половинного адреса» в каждой команде открывает возможность кратной индексной модификации. Вспомогательный регистр устройства управления, которым мы воспользовались в рассмотренном примере для записи адреса команды, передававшей управление на подпрограмму, может быть теперь заменен любой ячейкой запоминающего устройства, указываемой «полуадресом» этой команды.
Знак «штрих» теперь может обозначать добавление содержимого ячейки, указываемой «полуадресом» команды, а не содержимого фиксированной ячейки (регистра). Если, например, требуется ввести в подпрограмму в качестве параметра, где записано в ячейке 1000, то это может быть выполнено, как указано. Команда из ячейки с адресом 834 в устройстве управления последовательно преобразуется следующим образом.
В результате выполнения этих команд содержимое ячейки с адресом будет введено в арифметическое устройство для выполнения операций, предусмотренных подпрограммой. Командой выхода из подпрограммы будет команда с адресом 840, которая передаст управление на ячейку, адрес которой получается следующим образом: 006 + 516 = 522, т. е на ячейку продолжения основной программы. Использование описанного приема косвенной адресации дает возможность машине эффективно работать при многоступенчатом (рекурсивном) подчинении подпрограммы.
Источник: delete-it