Список команд Урал-1

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

В этом списке приводятся команды ЭВМ Урал-1

Представление чисел и команд[править | править код]

Распределение разрядов полной ячейки памяти
Распределение разрядов полной ячейки памяти в двоично-десятичной форме
Формат команды

Урал-1 поддерживает форматы чисел с фиксированной запятой в прямом и двоично-десятичном коде. Разряд знака равный нулю кодирует неотрицательные числа, единица кодирует отрицательные числа.

Команды имеют следующий формат: , где:

  •  — признак переадресации
  •  — код операции
  •  — признак длины ячейки
  •  — адрес

Условные обозначения[править | править код]

  • r — регистр АУ
  • s — сумматор АУ
  • С — содержимое регистра-счётчика
  • F — регистр переадресации
  • верхний индекс — указанный бит регистра
  • M(x) — мантисса числа
  • P(x) — порядок числа
  • f(x1,…xn):=z — вычисление функции f, без модификации x и помещение результата в ячейку (регистр) z.
  • X — не влияющий на вычисления бит (знак, цифра)
  • (z)0 — значение ячейки (регистра) z до выполнения команды

Исполнительный адрес команды формируется по следующей формуле:

;

где ã — исполнительный адрес команды, τ1 — признак переадресации, а — адрес из текущей инструкции, а F — значение регистра переадресации, то есть исполнительный адрес вычисляется как разница между адресом из инструкции и значением в регистре переадресации, значение из регистра переадресации учитывается, только если у инструкции указан флаг переадресации.

Знак нуля
  • всегда отрицательный после операций сложения/вычитания, за исключением (+0)+(+0), (+0)-(-0).
  • знак нуля при операциях умножения/деления определяется по правилам умножения знаков.

Примечание: для записи формул используется операция «=:», означающая, что результат вычисления заносится в ячейку (регистр), напр. 2x2=:A (запись в А результата 2х2).

Список команд[править | править код]

Код операции θ Название формула содержание Сигналы комментарий
ω φ
01 Сложение
К значению сумматора добавляется значение ячейки . Значение сохраняется в сумматоре, значение прибавляемого регистра не меняется.
02 Посылка в сумматор (присвоение)
Сброс регистра сумматора в ноль и выполнение операции сложения (код θ=1)
03 Вычитание
Знак числа меняется на противоположный, после чего выполняется операция сложения (код θ=1)
04 Вычитание модулей
Выполняется операция сложения (код θ=1) с предварительным изменением знаков: первоначальному значению сумматора присваивается знак , числу присваивается знак
05 Умножение (тип 1)
Регистр АУ умножается на ; произведение (умножение, тип 2, θ=6) прибавляется к содержимому сумматора. Результат записывается в сумматор, регистр АУ сбрасывается.
06 Умножение (тип 2)
Значение из сумматора умножается на . Результат заносится в сумматор. Регистр сбрасывается, произведение округляется.
07 Деление
Значение из сумматора делится на значение . Результат заносится в сумматор. Частное округляется, регистр сбрасывается.
10 Присвоение знака
На сумматор переносится знак числа .
11 Сдвиг Значение регистра сдвигается на число, указанное в 16—24 разрядах сумматора. Сдвиг зависит от знака . Отрицательные значения — сдвиг вправо, положительные — сдвиг влево.
12 Выделение части

Содержимое сумматора поразрядно логически умножается на число . Результат заносится в сумматор.
13 Формирование

Содержимое сумматора порязрядно логически сладывается с числом . Результат помещается в сумматор.
14 Сравнение

Производится поразрядная операция отрицания равнозначности между содержимым сумматора и числом . Результат помещается в сумматор.
15 Нормализация


Нормализация числа в сумматоре; мантисса и её знак записываются в ячейку , порядок сохраняется в старшей половине сумматора (с сохранением знака в знаковом разряде). Если предыдущая операция привела к переполнению, то величина порядка устанавливается в +1. При выполнении операции округление не производится. В регистре остаётся то же значение, что и в сумматоре.
16 Посылка в память Значение из сумматора копируется в на магнитном барабане. Значение сумматора, регистра АУ не меняется.
17 Послыка в регистр Значение из ячейки посылается на регистр АУ. Значение в сумматоре не меняется.
20 Посылка адреса в сумматор (то есть ) Сумматор сбрасывается, содержимое 12 и 1-11 разряда команды переносится в 36 и 19-29 разряды сумматора.
21 Условный переход Если ω=1, то не изменяется Если в момент выполнения команды флаг ω установлен, то управление передаётся команде . Если флаг сброшен, то продолжается выполнение программы (со следующей команды).
22 Безусловный переход не изменяется Управление передаётся команде
23 Передача управления по ключу При включенном ключе номер
Сохраняется Если ключ (флаг) с номером из диапазона [1;7] включен, то следующая команда пропускается, если ключ выключен, выполняется.
24 Конец цикла ;
при
Сохраняется Содержимое регистра переадресации уменьшается на 1 или на 2 (см следующую команду). Если на регистре переадресации ноль, то управление передаётся следующей команде. Иначе выполнение передаётся команде, стоящей в ячейке (с адресом)
25 Начало цикла ;
Число записывается в регистр переадресации, а в специальный одноразрядый регистр . Значение регистра переадресации будет уменьшатся на , при выполнении команды конца цикла.
26 Суммирование
30 Изменение команд Ячейка должна быть короткой. Обратный код её содержимого складывается в регистре команд (с циклическим переносом) с содержимым ячейки, следующей за той, которая хранит эту команду. Получившаяся при этом команда выполняется в следующем такте вместо очередной команды программы.
31 Обмен между накопителями
31 Чтение с перфоленты

Из зоны перфоленты перепысываются последовательно числа в ячееки памяти с номерами от до .
31 Чтение с магнитной ленты

Из зоны магнитной ленты переписываются последовательно числа в ячейки памяти с номерами от до . Ячейки памяти, в которые производится запись, должны быть полными.
31 Запись на магнитную ленту

Из ячеек памяти с номерами от до числа переносятся в зону магнитной ленты. Ячейки памяти, из которых переносятся числа на магнитную ленту, должны быть полными.
32 Выдача (печать) результатов Печатается или перфорируется (в зависисмости от положения на пульте управления переключателя "печать - перфорирование") число, модифичированный обратный код которого хранится в сумматоре. Печать производится в десятичной системе счисления (числовом коде) или восмиричной системе (коде команд) в зависимости от положения тумблера "Печать".
34 Пропуск интервала Бумажная лента печатающего устройства перемещается без печати на ней на один интервал.
37 Останов Останов машины с выдачей на пульт управления числа и одновременным переносом этого числа в сумматор.

Команды с кодами 00, 27, 33, 35, 36 не задействованы (при выполнении команды значения регистров и флагов сохраняются неизменными).

Источники[править | править код]

Н. А. Криницкий, Г. А. Миронов, Г. Д. Фролов, Программирование, под ред. М. Р. Шура-Бура, Государственное издательство физико-математической литературы, Москва, 1963 (Глава 9)
А. И. Китов, Н. А. Криницкий, Электронные цифровые машины и программирование, Государственное издательство физико-математической литературы, Москва, 1959