Cтраница 3
Так, можно уменьшить число команд переадресации в цикле обработки последовательности величин, если предвари тельно, перед обработкой, переносить очередной элемент последовательности в Я. [31]
Так, можно уменьшить число команд переадресации в цикле обработки последовательности величин, если предвари тельно, пород обработкой, переносить очередной элемент последовательности в Я. [32]
Если выполнение одной и той же команды, имеющей признаки адресов, происходит при п различных состояниях регистра адреса, то фактически выполняется п различных команд. Это позволяет сделать программы более короткими и в значительной степени отказаться от использования команд переадресации. [33]
На месте изъятой из программы команды пишется команда безусловной передачи управления к вынесенной на свободное место памяти группе команд. После такой переделки программы может потребоваться изменение некоторых команд в других частях программы, например команд переадресации. [34]
Этот способ позволяет изменять адреса одной команды на различные величины. Недостатками способа а являются необходимость восстанавливать изменяемые команды при повторных обращениях к циклу, а также то, что изменение команды путем переадресации требует исполнения команды переадресации и использования запасенной ранее постоянной. [35]
Как следует из сказанного выше, при выполнении команд перехода после цикла машина анализирует находящуюся в ее распоряжении информацию и производит либо выборку следующей команды, либо передачу управления в указанную в А2ИСП ячейку памяти. Кроме того, при выполнении команд перехода после цикла происходит изменение содержимого регистра адреса заданным образом, используемое при формировании исполнительных адресов в командах внутри цикла; это дает возможность существенно уменьшить число команд переадресации в программах. [36]
Методы программирования кратных циклов в сущности ничем не отличаются от уже знакомых нам методов, используемых при программировании простых циклов. Кроме рабочей части, этот цикл должен содержать команды переадресации, проверки логического условия и формирования. [37]
Далее, блок F поочередно находит в первом массиве информации операторы, подлежащие переадресации, и составляет необходимые константы переадресации и команды переадресации. Каждая команда оператора, подлежащего переадресации, анализируется: делается проверка, удовлетворяют ли ее адреса неравенству вышеуказанного вида. Выполнение такого неравенства хотя бы для одного адреса анализируемой команды говорит о необходимости составления команды переадресации. При этом различаются два случая: переадресации с постоянным шагом и переадресации с переменным шагом. [38]
Та команда, после которой должны быть расположены пропущенные команды, переписывается в свободном месте памяти. Вслед за ней записываются все пропущенные команды, а после последней из них ставится нулевая команда. На месте команды, изъятой из программы, пишется команда обращения ( с кодом 27) к вынесенной на свободное место памяти группе команд. После такой переделки программы может потребоваться изменение некоторых команд в других частях программы, например команд переадресации. [39]
Составленная программа может быть значительно упрощена, если воспользоваться приемом засылки в стандартную ячейку. В некоторых случаях удобно, чтобы программа имела одну или несколько ячеек, в которые заранее заносятся исходные данные. В процессе вычислений исходные данные выбираются только из этих ячеек. Такие ячейки называются стандартными. Часто стандартные ячейки применяются для уменьшения числа команд переадресации, экономии ячеек, занятых константами, а также сокращения времени, расходуемого на решение задачи. [40]
Как отмечалось в начале предыдущего параграфа, в программах задач для ЦАМ указываются адреса ячеек ЗУ, содержимым которых являются коды информации о задаче. Однако лишь для очень простых задач программа содержит адреса всех кодов информации о задаче. Например, программа вычисления по данной формуле может содержать адреса всех ячеек, в которых хранятся числа, участвующие в счете. Как правило, только часть адресов кодов информации входит в программу; адреса других кодов используются в программе в процессе ее работы. В машине, описанной в главе II, это достигается за счет команд переадресации. [41]
Схема управления групповой операцией.| Полная схема БУК. [42] |
После этого в RGk записывается код команды групповой операции. Адресная часть RGk выполняется в виде трех счетчиков. Конец групповой операции формируется СТГО. Сигнал с этого счетчика устанавливает ТГО в нуль и добавляет 1 к содержимому СТК, в результате чего осуществляется переход к следующей команде. Таким образом, введение групповой операции, так же как и введение индексных регистров и счетчика циклов, позволяет устранить команды переадресации, программную реализацию счетчика циклов и команду условного перехода к началу цикла. [43]
Далее вспомогательная команда переадресации прибавляется к команде регистра А, затем выполняется переход при нуле. Новая команда переадресации хранится в той же ячейке, что и прежняя, которая, естественно, уничтожается. Таким образом повторяется описанный выше процесс переадресации и вычисления. Так как в ячейке 0095 теперь вместо девятого компонента находится восьмой, К-1 вычисляется для девятого компонента. Эту процедуру повторяют, пока не будут вычислены К-1 для всех компонентов. К этому времени в ячейке 0095 будет храниться нуль, так что, когда команда переадресации будет сравниваться с нулем по команде 0124, последовательность будет изменена таким образом, что команды 0125 - 0127 будут опущены. Команды 0128 и 0129 восстанавливают первоначальную команду переадресации и направляют ее в ячейку 0095 для дальнейшего использования. Именно по этой причине команда переадресации запоминается дважды. [44]
Далее вспомогательная команда переадресации прибавляется к команде регистра А, затем выполняется переход при нуле. Новая команда переадресации хранится в той же ячейке, что и прежняя, которая, естественно, уничтожается. Таким образом повторяется описанный выше процесс переадресации и вычисления. Так как в ячейке 0095 теперь вместо девятого компонента находится восьмой, К-1 вычисляется для девятого компонента. Эту процедуру повторяют, пока не будут вычислены К-1 для всех компонентов. К этому времени в ячейке 0095 будет храниться нуль, так что, когда команда переадресации будет сравниваться с нулем по команде 0124, последовательность будет изменена таким образом, что команды 0125 - 0127 будут опущены. Команды 0128 и 0129 восстанавливают первоначальную команду переадресации и направляют ее в ячейку 0095 для дальнейшего использования. Именно по этой причине команда переадресации запоминается дважды. [45]