Регистр базы
В приведенном примере используются неявные адреса: DEB, KON, RES. Чтобы транслятор мог представить эти неявные адреса в виде регистра базы и смещения, в программе присутствует оператор USING *,7. Первый операнд указывает, какой адрес программист использовал в качестве базового адреса, второй — номер общего регистра, который используется как регистр базы. Символ * в первом операнде оператора USING обозначает ссылку на текущее значение счетчика адреса. Команда BALR имеет длину два байта. Значит, когда транслятор будет обрабатывать оператор USING, значение счетчика адреса будет равно Х’2 Оператор USING сообщает транслятору, что базовый адрес есть Х’2 и общий регистр 7 может быть использован как регистр базы для области памяти, начиная с адреса Х’2’ до адреса X’1002 Базовый адрес задается переместимым выражением, поэтому транслятор сможет использовать информацию, сообщенную данным оператором USING, только для представления неявных переместимых адресов.
Неявные адреса DEB, KON, RES представляют собой пере — местимые имена, поэтому для представления этих адресов в форме «база — смещение» будем использовать регистр 7. Если бы в данной программе программист не записал оператор USING, транслятор не смог бы представить эти неявные адреса в виде регистра базы и смещения и сообщил бы, что операторы, использующие эти адреса, ошибочны.
Оператор USING может записываться в любом месте программы и столько раз, сколько необходимо для указания регистров базы и содержимого каждого из них. Для каждого неявного адреса, используемого в программе, должен быть определен доступный регистр базы.