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