Система команд ЭВМ М-3
Александр Савватеев
Общие сведения
Вычислительная машина М-3 разработана под руководством И. С. Брука. Она относится к классу малых универсальных машин.
Машина выполняет действия над 31-разрядными числами с фиксированной запятой со скоростью 30 двухадресных операций в секунду. Оперативная память реализована на магнитном барабане и имеет емкость 2048 чисел. В случае подключения к ЭВМ памяти на магнитных сердечниках быстродействие возрастает до 1500 операций в секунду.
Устройств внешней памяти М-3 не имеет.
Для ввода-вывода информации используются перфолента и телетайп.
Машина имеет 770 электронных ламп и 3000 полупроводниковых диодов, потребляет 10 кВт электроэнергии. Для ее размещения достаточно 30-40 м2.
Память и структура информации
Оперативная память ЭВМ М-3 имеет объем 2048 31-разрядных чисел или команд. Все ячейки памяти равноправны между собой. Для обращения к ячейкам памяти используются 11-разрядные адреса. Разряды ячеек памяти нумеруются слева направо; старший (самый левый) разряд имеет номер 0.
Двоичные числа с фиксированной точкой содержат в нулевом разряде знак числа, а остальные 30 разрядов занимает абсолютная величина числа. Таким образом, М-3 использует прямой, а не дополнительный код для представления отрицательных чисел. Принято считать, что целая часть числа равна нулю, а разряды 1-30 содержат дробную его часть.
Десятичные числа также имеют нулевую целую часть. Их знак размещается в нулевом разряде, а в разрядах 1-28 расположены семь тетрад, кодирующих десятичные цифры дробной части числа. Разряды 29-30 не используются.
Ввод-вывод информации
Для ввода программы в память ЭВМ используется перфолента. Для каждой ячейки на перфоленте наносится ее адрес, признак конца адреса, значение этой ячейки и признак конца значения. В конце программы пробивается специальный признак. Ввод программы осуществляется при нажатии соответствующей кнопки на пульте управления ЭВМ.
Для ввода данных также используется перфолента, но на ней набивается сплошной массив десятичных чисел без каких-либо дополнительных кодов. Их ввод обеспечивается программой с помощью специальной команды.
Вывод информации осуществляется на печатающее устройство типа телетайпа.
Система команд
ЭВМ М-3 относится к двухадресным машинам. Каждая команда занимает одну ячейку памяти. Разряд кода команды 0 не используется, разряды 1-6 содержат код операции, разряды 7-18 — адрес первого операнда, разряды 19-30 — адрес второго операнда и результата.
Арифметическое устройство ЭВМ М-3 имеет сумматор, в который заносится результат последней выполненной операции. Содержимое сумматора может быть использовано при выполнении следующей операции.
При получении отрицательного результата, в том числе отрицательного нуля, формируется признак w=1. При получении положительного результата признак w=0.
Все команды можно разделить на две группы: арифметико-логические и команды управления.
Код арифметико-логической команды имеет вид xy, где x — модификатор операции (одна восьмеричная цифра); y — код операции (вторая восьмеричная цифра). Возможные значения кодов и модификаторов арифметико-логических операций приведены в нижеследующих табл. 1-2.
Таблица 1
Код x | Модификация |
---|---|
0 | b, r = a * b |
1 | r = a * b |
2 | b, r = r * a |
3 | r = r * a |
4 |
b, r = a * b Результат печатается |
5 | r = |a| * |b| |
6 |
b, r = r * a Результат печатается |
7 | r = |r| * |b| |
Таблица 2
Код y | Операция |
---|---|
0 | Сложение |
1 | Вычитание |
2 | Деление |
3 | Умножение |
6 | Логическое И |
В табл. 1 a и b означают ячейки памяти, заданные первым и вторым адресом в коде команды соответственно; r - регистр-сумматор.
Команды управления не имеют модификаций, поэтому их код всегда занимает две восьмеричные цифры. Список команд управления приведен в табл. 3.
Таблица 3
Код операции | Название команды | Действия, выполняемые по команде |
---|---|---|
07 27 |
Ввод числа с перфоленты | Одно число с перфоленты вводится в ячейку b. В сумматор оно не заносится. Адрес ячейки a равен нулю |
05 15 |
Перенос числа | Число из ячейки a переносится в ячейку b |
45 55 |
Перенос числа и печать | Число из ячейки a переносится в ячейку b и одновременно печатается на телетайпе |
24 | Безусловный переход по первому адресу |
Происходит передача управления на ячейку с адресом a и одновременно содержимое сумматора записывается в ячейку с адресом b |
64 | Безусловный переход по первому адресу и печать |
Происходит передача управления на ячейку с адресом a и одновременно содержимое сумматора записывается в ячейку с адресом b и печатается на телетайпе |
74 | Безусловный переход по второму адресу | Управление передается команде с адресом b. Адрес a в коде команды равен нулю. Знаковый разряд сумматора очищается, т. е. в сумматоре остается абсолютная величина его первоначального значения |
34 | Условный переход | Если w=1, происходит передача управления на ячейку с адресом a, а если w=0 - на ячейку с адресом b |
37 | Останов | Машина останавливается. На пульт управления выдается a. Содержимое сумматора не изменяется. Поле адреса b в коде команды равно нулю |