Cтраница 1
Использование индексных регистров является весьма эффективным средством программирования в самых различных случаях-мы ограничимся здесь рассмотрением наиболее типичных при - емов программирования с использованием индексных регистров. [1]
За счет использования индексных регистров, которые применяются, в частности, в упомянутой уже машине АНФСК-7, осуществляется совмещение во времени операций преобразования адресов команд и операций над числами. [2]
Однако при использовании индексного регистра величины лн, Ал, пк могут быть заданы только целыми числами, а в операторе цикла языка АЛГОЛ oi и могут задаваться арифметическими выражениями. [3]
Напомним, что идея использования индексных регистров заключается в расчленении переменного адреса на две составляющие: постоянную и переменную. Постоянная составляющая определяется только распределением памяти, но не зависит от индексов, а переменная составляющая зависит от значений индексов. Для ссылки на значение переменной с индексами в том или ином поле адреса в команде указывается постоянная составляющая А данного переменного адреса, и этот адрес снабжается признаком модификации по определенному индексному регистру. При составлении программы должно быть обеспечено, чтобы к моменту выполнения этой команды в указанном индексном регистре находилась переменная составляющая V данного переменного адреса. [4]
Чтобы наряду с базированием обеспечить использование индексных регистров и для эффективного управления переменными адресами при работе с компонентами массивов, обычно предусматривается возможность модификации адресов в команде одновременно по двум индексным регистрам. В этом случае при работе с массивами в одном регистре фиксируется база того сегмента памяти, в котором размещен массив, в поле адреса команды указывается постоянная составляющая переменного адреса, равная сдвигу начала массива относительно базы, а в другом регистре помещается переменная составляющая этого адреса. [5]
При реализации на УВМ такого рода циклов с использованием индексных регистров целесообразно пользоваться вторым вариантом оператора цикла. [6]
![]() |
Выполнение адресации с индексированием. [7] |
Команды увеличения и уменьшения содержимого индексного регистра при использовании индексного регистра для модификации некоторого адреса позволяют обратиться к области с ббльшим или меньшим адресом памяти соответственно. При выполнении команд увеличения и уменьшения содержимого индексного регистра в регистре состояния может быть установлен в определенное состояние разряд нулевого результата. [8]
Весьма полезным может быть и ряд других действий с использованием индексных регистров, например, условный переход в зависимости от их содержимого. Ниже приводятся операции УВМ с использованием индексных регистров. [9]
Обратная переадресация с постоянным шагом 00001 и 00002 может быть построена с использованием индексного регистра следующим образом. Если цикл имеет заранее определенное число повторений и начат командой О 41я, то в циклической части программы перед командами, требующими обратной переадресации, нужно записать команду 4 41 п ( назовем - ее командой обращения индексного регистра) итакуюже команду следует поставить после команд, требующих обратной переадресации. [10]
При М 10 и М 11 реализуются четырехбайтные команды типа регистр - память с использованием индексного регистра и смещения. Для смещения используются третий и четвертый байты. При М 10 результат засылается в память по второму исполнительному адресу. [11]
При работе с таблицами и массивами чисел, содержащихся в ЗУ, целесообразно организовать относительную адресацию с использованием индексного регистра. В индексном регистре хранится адрес первого элемента таблицы, а все остальные элементы адресуются относительно первого. [12]
При использовании в ЦВМ индексных ячеек значительно уменьшается объем оборудования по сравнению с вариантом, основанным на использовании индексных регистров. Уменьшение объема оборудования достигается, во-первых, за счет исключения из ЦУУ индексных регистров, во-вторых, за счет уменьшения числа специальных операций, ориентированных на выполнение действий с индексами. Число машинных операций уменьшается, поскольку операции над индексами, хранимыми в ЗУ, выполняются так же, как над любыми другими информационными словами. При использовании индексных ячеек время выполнения модифицируемых команд увеличивается по сравнению с вариантами, основанными на использовании индексных регистров. Поскольку выборка слова из регистра происходит значительно быстрее, чем выборка слова из ЗУ, то использование индексных регистров приводит к уменьшению затрат времени на выполнение модифицируемых команд. [13]
Использование индексных регистров является весьма эффективным средством программирования в самых различных случаях-мы ограничимся здесь рассмотрением наиболее типичных при - емов программирования с использованием индексных регистров. [14]
В качестве иллюстрации возьмем процедуру СКАЛЯР, подпрограмма для которой была приведена в примере 12.3, и рассмотрим, как может быть составлена подпрограмма для этой процедуры с использованием индексных регистров. [15]