Cтраница 2
После осуществления запоминания указанной информации программа-диспетчер передает управление следующей программе, то есть формирует адрес первой команды программы. [16]
Центральный процессор начинает операцию ввода-вывода путем используемого канала и ВУ, а также указания каналу адреса первой команды программы канала в основной памяти машины. Команда канала содержит код операции, признаки, счетчик и адрес памяти. Различают шесть операций ввода-вывода: чтение, запись, чтение в обратном направлении, управление, уточнение состояния и переход в канале. При выполнении чтения и чтения в обратном направлении информация передается от ВУ в основную память. В ходе операции записи информация передается от основной памяти к ВУ. При операции управления контроллер получает приказ, который оно декодирует, и выполняет действия, не связанные с пересылкой информации. Запись и управление выполняются каналом аналогичным образом. Прекращение операции ввода-вывода приводит к прерыванию; информация о состоянии выполнения операции ввода-вывода, которая вызвала прерывание, сохраняется в слове состояния канала ( CSW), структура которого рассматривается ниже. Дополнительная информация, зависящая от типа ВУ, передается контроллером в процессор в ходе операции уточнения состояния. Операции чтения и проверки состояния выполняются каналом одинаково. Программа канала представляет собой последовательность команд канала ( CCW), обычно располагаемых в последовательных ячейках памяти. [17]
По окончании записи вручную с пульта управления или программным путем машине сообщают, в какой ячейке находится первая команда программы. Все ячейки памяти перенумерованы и номер ячейки называется ее адресом. Команды размещаются в последовательных ячейках и исполняются машиной по очереди автоматически. Все ячейки запоминающего устройства равноправны и в каждой может храниться или число, или команда. Куда записывать программу и числа, решает программист в момент составления программы, а при вводе об этом сообщает машине. [18]
Из рассмотренных выше примеров видно, что в процессе программирования каждой метке L просто ставится в соответствие адрес L первой команды программы, реализующей оператор с этой меткой, так что при записи алгоритма на АЛГОЛе метки операторов играют ту же роль, что и адреса команд при составлении программы. [19]
В первом столбце записаны для наглядности адреса ячеек запоминающего устройства, расположенные последовательно после ячейки М, выбранной для первой команды программы. Этот столбец в программу не входит. [20]
В случае совпадения этих кодов управление передается следующей по порядку ( пятой) команде, а в случае несовпадения - первой команде программы. [21]
Если сумма всех п слагаемых еще не вычислена, то команда ( 36) передает управление команде в ячейке В, т.е. первой команде программы. По этой команде к сумме-находящейся в ячейке А, добавляется новое очередное слагаемое, так как в предыдущем цикле команда ( 22) изменила ее второй адрес. [22]
Канал приступает к выполнению программы обмена после того, как в его управляющие регистры переписана необходимая информация из адресного слова канала ( CAW) и из первой команды CCW программы обмена. [23]
Блок-схема решения этой задачи показана на рис. 16.2. Назовем эту программу TESTSW ( тест ключа) и используем это символическое имя в качестве метки, указывающей на адрес первой команды программы. [24]
Если происходит ошибка и загружается гибкий диск с другим содержанием, например с файлом данных, программа-помощница вслепую загружает в память все, что находится по известному ей адресу, затем пытается выполнить то, что она принимает за первую команду программы. [25]
Цикл выборки первой команды завершен. Первая команда программы передана в регистр команд микропроцессора. Теперь микропроцессор может начать выполнение этой команды. [26]
Трансляция программы. [27] |
Большинство символических программ пишется в предположении, что последовательно написанные команды будут располагаться в последовательных ячейках памяти. Если программист первой команде программы присваивает абсолютный адрес, то остальные будут располагаться в последующих ячейках памяти. [28]
Общая структура команды. [29] |
Первой выполняется команда, заданная пусковым адресом программы. Обычно это адрес первой команды программы. Адрес следующей команды однозначно определяется в процессе выполнения текущей команды и может быть либо адресом следующей по порядку команды, либо адресом любой другой команды. Процесс вычислений продолжается до тех пор, пока не будет выполнена команда, предписывающая прекращение вычислений. [30]