Cтраница 1
Вторая форма записи адресной величины отличается от первой формы тем, что, во-первых, вместо символа А пишется символ V и, во-вторых, выражение должно быть обязательно перемещаемым. [1]
Четвертая форма записи адресных величин состоит из двух элементов - адреса ячейки, помещающего базу, и величины, интерпретируемой обычно как адрес относительно базы. В качестве каждого из этих элементов может выступать выражение-абсолютное или перемещаемое. [2]
Вторая форма записи адресной величины отличается от первой формы тем, что, во-первых, вместо сигнала А пишется символ V, и, во-вторых, выражение должно быть обязательно перемещаемым. [3]
Четвертая форма записи адресных величин состоит из двух элементов - адреса ячейки, помещающего базу и величины, интерпретируемой обычно как адрес относительно базы. В качестве каждого из этих элементов может выступать выражение - абсолютное или перемещаемое. [4]
А-регистр, или сумматор, длиной в 18 разрядов служит главным образом для суммирования адресных величин и, кроме того, несет много дополнительных нагрузок. Так, например, именно в А-регистре формируется адрес блока информации, используемого в команде перехода с переключением задач. [5]
Заметим, что для организации переходов из секции в секцию использование операторов EXTRN и ENTRY не обязательно. Для этой цели может быть использована адресная величина, начинающаяся символом V ( см. 6.9) и равная метке того оператора внешней управляющей секции, к которому должен осуществляться переход. Такая адресная величина действующими операторами помещается в ячейку малой оперативной памяти, и с помощью другого действующего оператора производится переход по адресу, являющемуся содержимым этого регистра. [6]
Заметим, что для организации переходов из секции в секцию использование операторов HEXTRNII и ENTRY не обязательно. Для этой цели может быть использована адресная величина, начинающаяся символом 1 V ( см. § 6.5) и равная метке того оператора внешний управляющей секции, к которому должен осуществляться переход. Такая адресная величина действующими операторами помещается в ячейку малой оперативной памяти, и с помощью другого действующего оператора производится переход по адресу, являющемуся содержимым этого регистра. [7]
Динамически позиционно-независимую программу можно получить путем использования относительной адресации со счетчиком команд. Однако в программе, которая манипулирует такими адресными величинами, как указатели, для получения динамической позиционной независимости требуется широкое применение адресации по базе. Всякий раз, когда выполняется перемещение программы, новый базовый адрес необходимо помещать в базовый регистр, а все ссылки к данным необходимо выполнять относительно этого регистра, используя адресацию по базе или с индексированием по базе. Кроме того, очень трудно при составлении программ ручным способом соблюдать правила получения динамически позиционно-независимой программы ( см., например, упр. Следовательно, динамическая позиционная независимость обычно достигается только в тех процессорах, которые имеют специальный базовый регистр. Кроме того, динамическая позиционная независимость достигается в процессорах, в которых имеются блоки преобразования адресов памяти. [8]
Могут возникнуть ситуации, при которых программисту необходимо будет запомнить значение имени-индекса, скажем, в качестве точки отсчета для дальнейших вычислений или для установки границ в какой-либо процедуре поиска. Есть возможность определить элементарное данное, предназначенное для хранения только адресных величин. [9]
![]() |
Программа сложения чисел на PDP-11, применяющая модификацию команд. [10] |
Второе изменение состоит в гом, что слово, помеченное меткой LIMIT, содержит ссылку на адрес последнего элемента массива К. Заметим, далее, что когда команда СМР сравнивает две адресные величины, то она оперирует их числовыми значениями. [11]
Сложный оператор PERFORM служит для того, чтобы изменять один или несколько идентификаторов или индексных-данных при повторяющихся исполнениях подчиненной процедуры. Значения идентификаторов должны быть числовыми, в то время как значениями имен-индексов должны быть адресные величины. Изменение значений имен-индексов с помощию фраз VARYNG и AFTER аналогично действиям, осуществляемым оператором SET, который выполняет взаимные преобразования адресных и порядковых величин. [12]
В языке операндов ассемблера IBM-360 существует конструкция определения состояния элементарных областей памяти ( полей переменной длины описанных выше типов), представляющая собой конечную последовательность записей, каждая из которых состоит из семи элементов строки. Тело первого из них ( в первой записи) состоит из восьми символов, первые из которых совпадают со всеми символами элементарного символического адреса операнда, а последние являются символами ы; тело третьего элемента строки содержит слово DC l l и l l; тело пятого элемента содержит одну из конструкций, описанных в настоящем примере и служащих для записи операндов фиксированной длины, операндов переменной длины и адресных величин. Если конструкция, выражающая операнд переменной длины, содержит более 54 символов, то эта конструкция продолжается в теле пятого элемента второй записи. Могут использоваться продолжения конструкции и в телах пятых элементов последующих записей. [13]
Заметим, что для организации переходов из секции в секцию использование операторов EXTRN и ENTRY не обязательно. Для этой цели может быть использована адресная величина, начинающаяся символом V ( см. 6.9) и равная метке того оператора внешней управляющей секции, к которому должен осуществляться переход. Такая адресная величина действующими операторами помещается в ячейку малой оперативной памяти, и с помощью другого действующего оператора производится переход по адресу, являющемуся содержимым этого регистра. [14]
Заметим, что для организации переходов из секции в секцию использование операторов HEXTRNII и ENTRY не обязательно. Для этой цели может быть использована адресная величина, начинающаяся символом 1 V ( см. § 6.5) и равная метке того оператора внешний управляющей секции, к которому должен осуществляться переход. Такая адресная величина действующими операторами помещается в ячейку малой оперативной памяти, и с помощью другого действующего оператора производится переход по адресу, являющемуся содержимым этого регистра. [15]