Использование индексных регистров
Обратите внимание на то, что рабочая ячейка 2 (сигма) используется для хранения частичной суммы. Ниже приводится пример записи программы задачи, изображенной на блок-схеме, в системе команд машины ИБМ-650 в условных адресах с изменением адресов в арифметическом устройстве. В приведенной программе команды 100-103 подготавливают исходные значения; команды 104-109 изменяют адреса; команды 114-116 увеличивают значение параметра, а команды 117-118 выполняют сравнение.

Эту программу можно переписать таким образом, чтобы две изменяющиеся команды сами служили в качестве счетчиков. В дальнейшем адреса команд будут записываться в условном виде, аналогично тому как это делается для чисел. Обратите внимание, что в измененном виде программа не соответствует в точности блок-схеме. В некоторых случаях подобные приемы позволят быстрее выполнить программу или сделать ее короче. (Так, во второй программе цикл состоит из двенадцати команд, в то время как в первой — из тринадцати.) В системе команд машины МИДАК будет записан только первый вариант программы.
Модернизированный вариант машины ИБМ-650 имеет три индексных регистра А, В и С, каждый на четыре десятичных разряда. При выполнении команды к ее адресам прибавляется содержимое индексных регистров в случае записи букв, соответствующих этим регистрам, в служебные разряды, следующие за адресами команды. Для записи нашей программы вычисления скалярного произведения векторов на модернизированной машине ИБМ-650 необходимо ввести несколько новых операций:
Восстановление и вычитание из индексного регистра А. В индексный регистр А засылается нуль и из него вычитается адрес. Сложение с индексным регистром А. Адрес числа складывается с содержимым индексного регистра А. Передача управления по содержимому индексного регистра, не равному нулю.
Источник: delete-it