Cтраница 4
Два события в программе - выборка команды и изменение содержимого памяти - требуют определения области памяти. Область памяти, которая выделяется для наблюдения за обращениями к ней, начинается с ячейки, определяемой начальным адресом в управляющем регистре 10, и распространяется до ячейки, определяемой конечным адресом в управляющем регистре 11, включительно. Таким образом, область памяти размещается справа от ячейки с начальным адресом. [46]
Для ввода и вывода информации на магнитные ленты в оперативной памяти машины отводятся участки, которым присваивается номер соответствующей ленты. Каждый участок памяти определен своим начальным и конечным адресом. Конечные адреса обозначены и. Количество ячеек в каждом участке кратно длине макета обрабатываемой информации. [47]
Подобные параметры ( включая числовые) будем называть параметрами-значениями. В ряде случаев полезен иной тип параметра - параметр-адрес. Это может быть, например, начальный или конечный адрес массива ячеек, или ( в случае алгольских массивов) адрес элемента массива с нулевыми значениями всех индексов. В подпрограмме вычисления определенного интеграла могут оказаться необходимыми параметры-адреса начала и конца программы вычисления подынтегральной функции. [48]
Интересно, что Тестран умеет пользоваться некоторой дополнительной информацией, находящейся в исходном тексте отлаживаемой программы. Так, при распечатке поля основной памяти формат вывода определяется по умолчанию типом и длиной поля, которые использовались программистом в соответствующих операторах DC или DS. Поэтому в операторе DUMP DATA можно, в частности, не задавать конечный адрес, если в качестве начала поля указана метка. Длину Тестран извлечет из загрузочного модуля. Программист имеет возможность задать формат отладочной печати способом, отличным от способа описания соответствующего поля. [49]
Блок-схема программы ввода - вывода. [50] |
Когда эта команда будет введена, скажем, в ячейку 000, и выполнена машиной, то управление перейдет к подпрограмме ввода. Эта подпрограмма введет следующие два слова программы, которые должны содержать начальный и конечный адреса зоны памяти, в которую должна быть записана программа. Подпрограмма формирует команду ввода по заданному начальному адресу и заносит в счетчик конечный адрес, после чего начинается циклическое выполнение команды ввода. Когда ввод программы будет закончен, подпрограмма должна передать управление по заданному начальному адресу ввода, и тем самым машина перейдет к выполнению введенной программы. Вероятно, разумно остановить машину, прежде чем начнутся вычисления, например для того, чтобы дать возможность оператору выключить вводное устройство. [51]
После пуска машины с ячейки 0015 начинает работать расстановочная программа. Вначале РП анализирует первую строку ТИ, по номеру СП определяет адрес ячеек каталога и вызывает их в оперативную память. По общей длине СП, указанной в каталоге, и заданному в первой строке ТИ начальному адресу определяется конечный адрес. [52]