Список команд Урал-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