Cтраница 2
Команда безусловной передачи управления - 1 - 24 а а % независимо от результата предыдущего действия передает управление в ячейку, указанную в первом адресе команды, a IB ячейку, указанную во втором адресе, записывается результат предыдущего действия. [16]
В конце перерабатываемой части ставят команду - 3077 LJ N L J a, где N - четырехзначное восьмеричное число, указывающее количество констант в неперерабатываемой части, и а - обычный второй адрес команды безусловного перехода ( - 30), используемый для записи результата предыдущего действия. [17]
Команда условной передачи управления 34 a az обеспечивает выход по двум направлениям только в зависимости от знака. Если знак результата предыдущего действия плюс, то выполнение программы продолжается с ячейки, указанной в первом адресе команды, если знак минус, то с ячейки, стоящей во втором адресе. [18]
Команды передачи управления прерывают естественный порядок выполнения команд и однозначно определяют адрес следующей команды. При выполнении команд передачи управления результат предыдущего действия сохраняется. [19]
Команда из ячейки 1502 вычитает из вида переменной команды в данном цикле ее вид в последнем цикле, увеличенный на единицу, изменявшую адрес. Команда из ячейки 1503 анализирует результат предыдущего действия на сумматоре; если он положителен, то внешний цикл закончен и машина передает управление команде останова из ячейки 1522; если на сумматоре отрицательное число, то управление передается команде из ячейки 1504, к внутреннему циклу. [20]
В зависимости от модификации операций некоторые перечисленные действия выполнения операции могут отсутствовать. Так, если в команде используется результат предыдущего действия, находящийся в сумматоре, то отсутствует чтение одного операнда; если модификацией команды не предусмотрена запись результата вычислений в какую-либо ячейку МОЗУ, то отсутствует этап записи результата. [21]
Например, по команде 23 - а а2 из результата предыдущего действия вычитается содержимое ячейки, указанной в первом адресе команды. Результат в ячейку не записывается. [22]
Функциональная схема ЭВМ Наири-2. [23] |
Это устройство выполняет арифметические и логические операции над числами и командами. Программисту доступен только один фиксированный адрес ( я2), в котором в большинстве случаев запоминается результат предыдущего действия, остальные же адреса используются для выполнения машинных операций. [24]
Машина М-3 выполняет операции сложения, вычитания, умножения и деления. Кроме того, в машине имеется возможность выбора одного из двух направлений продолжения счета в зависимости от знака результата предыдущего действия. [25]
Приведенные замечания относятся ко всем командам, имеющим аналогичные модификации. Отметим также, что содержимое сумматора в большинстве случаев представляет собой результат выполнения предыдущей команды, а потому часто называется результатом предыдущего действия. Однако наличие команд, сохраняющих содержимое сумматора, определяет возможность того, что содержимое сумматора будет являться результатом не предыдущей, а ранее выполнявшейся команды. [26]
Для большинства машинных операций, за исключением команд передачи управления, индекс 1 означает выполнение действия с участием содержимого фиксированного адреса а2 - результата предыдущего действия. [27]
Операторы этой группы обеспечивают разветвления в программе, выполняя условные или безусловные переходы. Условный переход может производиться в зависимости от состояния индикаторов НУЛЬ и МИНУС, а также от состояния указателя ПЕРЕПОЛНЕНИЕ, положение которых определяется результатом предыдущего действия. При выполнении большинства операторов данной группы состояние индикаторов и содержимое сумматора, полученное в результате выполнения предыдущей команды, не нарушается. [28]
Модификации команды определяются наличием нуля или единицы в каждом двоичном разряде второй триады кода команды. Так, наличие единицы в старшем двоичном разряде этой триады означает, что операция выполняется в режиме с плавающей запятой; наличие единицы во втором двоичном разряде указывает на использование результата предыдущего действия; наличие единицы в третьем двоичном разряде указывает на блокировку записи результата в МОЗУ. [29]
Для всех программ в дальнейшем следует иметь в виду: 1) при вычислении дробей в первую очередь программируется вычисление знаменателя, а затем числителя, чтобы при делении иметь возможность использовать результат предыдущего действия; 2) в начале программируется вычисление вычитаемого, затем - уменьшаемого и находится разность; 3) следует избегать лишних пересылок, шире используя различные модификации команд. [30]