Cтраница 2
Загрузку базового регистра подпрограммы следует осуществлять с помощью адресной константы типа А, так как загрузка с помощью команды LA может вызвать ошибку, если имя подпрограммы выходит за границы действия базового регистра основной программы. [16]
Необходимо назначить базовый регистр, в качестве которого можно выбрать любой из регистров. [17]
Когда загружается базовый регистр, который используется для адресации. [18]
В Представляет базовый регистр ( регистр базы), используемый для операнда, в котором он задан. [19]
При использовании базового регистра формат команды может быть следующим. Для задания, одного из 16 общих регистров в качестве базового выделим 4 бита и еще 12 битов - для смещения. Благодаря применению принятой схемы формирования адреса достигается экономия восьми битов. [20]
Загружается содержимое базового регистра. [21]
В качестве базового регистра использовать регистр 11, в котором находится значение 008000 - адрес команды. [22]
Если среди базовых регистров в USING указан регистр О, то он должен быть первым в поле операндов после выражения. [23]
После назначения базовых регистров в секциях PROGA и PROGB первые две ошибки останутся. [24]
Метод использования базовых регистров состоит в следующем. Адрес каждого объекта, расположение которого имеет значение только по отношению к началу соответствующей программной единицы и, следовательно, способного перемещаться по основной памяти вместе с программной единицей, представляется в объектной программе номером регистра, назначенного этому объекту в качестве базисного, и величиной смещения - разностью между адресом объекта и адресом, помещенным в базисный регистр. [25]
При назначении базовых регистров следует соблюдать осторожность. Операционные системы используют некоторые из общих регистров для целей связи между программами, изменяя при этом ранее содержавшуюся в них информацию. С учетом сказанного, можно без опасения принять, что общие регистры 3 - 12 находятся в полном распоряжении программиста, работающего с OS, для их использования либо в качестве базовых регистров, либо в качестве управляющих регистров в соответствии с предложениями. [26]
Если в разных базовых регистрах содержится одинаковый базовый адрес, то адресация производится с помощью базового регистра с меньшим номером. [27]
Определение и загрузка базовых регистров в односекционной програм - ме с помощью команды. [28] |
Команды USING, определяющие базовые регистры для секции и машинные команды, загружающие эти базовые регистры, могут находиться вне секции. На рис. 90 приведена схема определения и загрузки базовых регистров для исходного модуля, состоящего из трех секций. Адресные константы, использованные для загрузки регистров для второй и третьей секций расположены в первой секции. Команды определения и загрузки регистров для первой и второй секций помещены в своих секциях. Аналогичные предложения для третьей секции помещены во второй секции. [29]
Существует оператор отмены базовых регистров, который отличается от описанного оператора тем, что вместо USING тело третьего элемента содержит слово Ц DROP, а в теле пятого элемента содержится от 1 до 16 абсолютных символических адресов. Этот оператор показывает, что в последующих действующих операторах регистры с заданными в нем символическими адресами не будут использоваться как регистры базы. [30]