Машинная команда
Команда BALR 3,0 поместит адрес следующей машинной команды в регистр 3. Следующей выполняемой машинной командой в программе будет команда с именем BAS. Значит, в регистр 3 будет загружен адрес команды с именем BAS. Оператор USING определяет регистр 3 как регистр базы и сообщает транслятору значение базового адреса в виде символа *, который при размещении USING в этом месте программы соответствует адресу BAS. Таким образом, при трансляции смещение для неявных адресов будет вычисляться относительно адреса BAS, указанного оператором USING, а при выполнении программы именно это значение адреса будет загружено командой BALR в регистр базы. В результате адреса, используемые в программе, будут правильно базироваться при трансляции и вычисляться при выполнении полученной программы.
Таким образом, рассматриваемая пара операторов BALR и USING позволяет определить один регистр базы и загрузить его правильным базовым адресом. Это делает доступным для базирования 4096 байт памяти, начиная с указанного базового адреса.
После того как один регистр базы определен, загрузка других регистров базы может быть выполнена с помощью команд загрузки регистров, использующих адреса памяти, хотя команду BALR для этой цели можно использовать в любом месте программы. Обычно загрузка новых регистров базы осуществляется посредством размещения в этих регистрах адресных констант, значения которых равны величине новых базовых адресов. Эти адресные константы должны находиться в той области памяти, которая базируется с помощью уже определенного регистра базы. Команды загрузки регистров базы могут быть расположены в любом месте программы, но они должны выполняться до того, как выполняются команды, в которых эти регистры базы используются для представления неявных адресов.