|
Однако, если программа была написана в расчете на то, что цикл p+l -f- р + 3 будет повторяться до совпадения контрольных сумм при двух последовательных вводах одного и того же массива, то этот расчет не оправдается. Почти мгновенно после окончания второго ввода управление (при несовпадении сумм в ячейках г и гг) будет передано вновь команде р + 1, и читающее устройство начнет работать раньше, чем оператор машины успеет снова установить на нем ошибочно введенную карту. Начнется либо ввод другого массива (на читающем устройстве может быть установлено сразу несколько массивов, каждый со своим признаком конца), либо устройство будет работать вхолостую. Чтобы в подобных случаях оператор -имел возможность подготовить повторный ввод неправильно введенных перфокарт, в команде р + 2 следует воспользоваться операцией сравнения с остановом (^=а). Таким образом, разумно составленная программа ввода массива с неизвестной контрольной суммой может быть такой: Программа 2 р 0 ВВ a p+l г Первоначальный ввод р+1 0 ВВБО а р + 2 гг Повторный ввод р + 20 ф а г гг 0 Останов при несовпадении сумм г: = г±, р + 3 0 ПО гг р+1 г на повторный ввод (при несовпадении сумм) Здесь а — адрес ячейки, в которую должно попасть первое слово вводимого массива, если в нем нет соответствующего адресного кода Упражнения. 1. В чем недостаток программы р 0 ВВ а р + 1 г р+1 0 ВВ а р + 2 г i р + 2 0 ф г гг 0 р + 3 0 Я0 гг p+l г также предназначенной для ввода массива с неизвестной контрольной суммой? 2. Составить программу для ввода массива, правильная контрольная сумма которого известна и пробита в составе признака конца ввода этого массива. Операции вывода на машине М-20 мы рассмотрим совместно с операциями обмена. По существу, все они являются вариантами одной и той же операции. Эта операция задается двумя командами. Первая команда (символическое обозначение Ма; восьмеричный код 50) лишь подготавливает операцию и только вторая команда (Мб; 70) вызывает ее выполнение. Можно рассматривать эту пару команд как одну шестиадресную команду.
|