Метод загрузки
В программе используется следующий метод загрузки: готовится адресная константа с именем D, равная значению базового адреса, указанному в операторе 7 . Эта константа загружается в регистр 4 оператором 6. Имя D, используемое в операторе 6, представляет собой неявный адрес. Так как один регистр базы уже определен, то неявный адрес D будет представлен в виде регистра базы 3 и смещения относительно базового адреса BAS. При выполнении программы эта команда выполнится правильно, так как команда 1 загружает в регистр 3 именно значение BAS. Выполнение оператора 6 вызовет загрузку регистра 4 значением, указанным в качестве базового адреса в операторе 7 .
Оператор USING определяет общие регистры 2, 3, 4, 5 регистрами базы. Транслятор считает, что в них содержатся соответственно следующие базовые адреса: NACH, NACH+4096, NACH+ 4-8192, NACH4-12288. При выполнении программы необходимо, чтобы такие базовые адреса были загружены в соответствующие регистры базы. Регистр базы 2 загружается командой BALR, которая помещает в него адрес следующей за BALR машинной команды. Для загрузки остальных регистров в программе определяются адресные константы, значения которых равны необходимым базовым адресам. Эти адресные константы определяются оператором DC с именем В ASAD и будут расположены в памяти друг за другом, занимая три слова. Загрузка адресных констант в регистры выполняется командой групповой загрузки LM, по которой содержимое каждых четырех байт последовательно, начиная с адреса BASAD, загружается в регистры 3, 4, 5. Неявный адрес BASAD в команде LM будет базироваться регистром 2. При работе программы к моменту выполнения команды с именем NACH, где используется неявный адрес BASAD, регистр базы 2 будет уже загружен нужным адресом с помощью команды BALR. Значит, команда с именем NACH выполнится правильно, в результате чего окажутся правильно загруженными и остальные регистры базы.