Cтраница 4
В самом начале с помощью специальной программы ( диспетчера) устанавливается, какое из устройств машины требуется для выполнения каждой программы. После этого производится распределение программ по требуемым устройствам. При этом устройству передается необходимая информация ( номер первой команды программы) и оно включается в работу. Если устройство оказывается занятым, то за ним записывается требование, которое оно должно будет выполнить после окончания своей работы. В процессе работы устройства за ним может быть записано несколько таких требований, которые располагаются в порядке поступления, образуя очередь к устройству. Устройство последовательно обслуживает все требования, после чего отключается. [46]
Контроль правильности ввода информации в машину с перфолент, магнитной ленты или барабана осуществляется сравнением известной суммы передаваемого массива чисел, нанесенной на носителе непосредственно после исходной информации, с контрольной суммой, подсчитанной в процессе передачи чисел. Правильность работы устройств ввода контролируется АУ. В случае совпадения обеих сумм осуществляется переход к первой команде программы. [47]
Из описания рабочего цикла программного процессора видно, что при наличии в регистре прерывания первостепенных сигналов машина запасет содержимые основных регистров и сделает перескок к команде, адрес р у которой постоянно хранится в устройстве схема работегТцикла управления. В этом перескоке и заклю - ЭВМ, оборудованной чается существо прерывания. Нужно, чтобы системой прерывания, вышеуказанная команда была первой командой программы обработки прерываний. Программа обработки прерываний должна прочитать содержимое регистра прерываний, очистить регистр от сигналов и определить необходимую реакцию операционной системы на все обнаруженные сигналы, как первостепенные, так и второстепенные. Для продолжения прерванного выполнения программы в системе команд должна быть предусмотрена команда переноса кодов из дублирующих ячеек обратно в управляющие регистры. В реальных ЭВМ реакция на прерывание может быть сложнее; например, содержимое базовых регистров и индексных регистров тоже нужно переносить в дублирующие ячейки. [48]
Рассмотрим, как взаимодействуют отдельные устройства машины в процессе выполнения какой-либо программы вычислений. Для определенности предположим, что машина трехадресная. С помощью клавиатуры на пульте управления набирается команда ввода и адрес первой команды программы. При нажатии кнопки Пуск указанная информация поступает в УУ. Это устройство выдает на устройство ввода необходимую последовательность управляющих сигналов, в результате чего происходит выполнение команды ввода - запись программы и исходных данных в ЗУ. После окончания ввода УУ посылает в ЗУ адрес первой команды. Извлеченная поэтому адресу команда поступает в УУ и разбивается на две части: операционную и адресную. Адреса операндов из УУ пересылаются в ЗУ. Выбранные по этим адресам операнды поступают в Л У, а из УУ в Л У поступает серия управляющих сигналов, необходимых для выполнения заданной операции. После окончания операции результат записывается в ЗУ по адресу, указанному в команде, а УУ формирует адрес следующей команды. Время, в течение которого выполняется одна команда, называют циклом машины. [49]
В зависимости от того, где находится команда в программе, имеются два выхода. Кроме того, существует возможность изменить данные, входящие в состав первой команды программы, представленной на рис. 8.24 6, Достаточно загрузить в регистр В начальное значение 04, тогда как практически соответствующий фрагмент программы должен быть выполнен лишь три раза. Тем самым компенсируется потеря одного из нужных циклов его выполнения. [51]
Все рассмотренные ранее примеры операторов принадлежат группе операторов машинных команд. В процессе трансляции исходной программы в объектную программа-транслятор ассемблер нуждается в некоторых уточнениях. Например, ассемблер не знает, в какую ячейку памяти должна быть помещена первая команда программы. Эта и другая информация, необходимая для работы ассемблера, вводится в виде операторов псевдокоманд. Приставка псевдо указывает на то, что такие команды не отображаются машинными кодами в объектной программе, а используются только в процессе трансляции. Мнемоника и состав таких команд для каждого языка ассемблера индивидуальны. [52]
Сложение двух чисел с помощью простой команды СЛОЖЕНИЕ. [53] |
На рис. 8.2 показано состояние устройств микро - ЭВМ после выборки команды LDA. Это 2-байтовая команда, реализация которой занимает три микроцикла. В начале работы счетчику команд присваивается значение 0000; при этом он указывает на первую команду программы. [54]
Имя переменной состоит из знака амперсанда, за которым следует идентификатор длиной не более семи букв или цифр. Для определения локальных переменных собственно программы нужно поместить оператор ( или операторы) LCLA перед первой командой CSECT программы. Описание внутренних переменных макроопределения производится операторами, расположенными непосредственно после макропрототипа. [55]