ЭКВМ Электроника МК
Описание системы команд


Главная / ЭКВМ / Техническая информация

НПКД.401348.001 Д11 изм. 3

Содержание


Настоящий документ распространяется на клавишные электронно-вычислительные машины "ЭЛЕКТРОНИКА МК" различных моделей (далее - ЭВМ).

При ознакомлении с документом дополнительно следует использовать руководство по эксплуатации ЭВМ и документ "ЭКВМ ЭЛЕКТРОНИКА МК. Организация хранения и обработки информации в оперативной памяти".

1. Введение

1.1. Информация в процессе обработки (данные) и алгоритмы её обработки (программы) сохраняются в оперативной памяти ЭВМ. Оперативная память имеет раздельные области для хранения программ и данных. Команды ЭВМ изменяют информацию, записанную в оперативную память.

1.2. Команды ЭВМ (см. приложение А) выполняются в режиме калькулятора. В режиме автоматической работы команды выполняются непосредственно после их ввода оператором. В режиме выполнения программы команды исполняются автоматически поочерёдно в соответствии с алгоритмом работы программы пользователя.

1.3. В ЭВМ используется обратная бесскобочная логика вычислений. Операции над числами выполняются в десятичном виде, при этом исходные данные выбираются из регистров стека, обработанные данные помещаются обратно в стек.

Стек ЭВМ состоит из четырёх регистров. Регистры стека X и Y являются операционными, регистры Z и T используются для временного хранения данных. Регистр предыдущего результата X1 является вспомогательным и содержит значение регистра X, существовавшее до выполнения операции.

1.4. Система команд ЭВМ совместима с базовой системой команд ряда программируемых микрокалькуляторов (см. приложение Б).

2. Ввод чисел

2.1. Ввод чисел производится в регистр стека X. Для ввода чисел используются команды: "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "запятая", "ВП" и "/-/".

2.2. В регистр X возможно ввести число в естественной форме, состоящее не более чем из восьми цифр. Ввод чисел в естественной форме производится при помощи команд от "0" до "9" и "запятая", которые применяются в порядке следования цифр в числе от старшего разряда к младшему. Команда "запятая" используется для ввода позиции десятичной запятой, разделяющей целую и дробную часть числа. Повторное использование команды "запятая" при вводе числа никаких действий не вызывает.

Если в регистре X до начала ввода содержится число нуль, и команда "запятая" выполняется первой, то в регистр X будет введено значение "0," и следующая вводимая цифра будет обозначать десятые доли единицы.

Для ввода отрицательного числа после набора абсолютного значения числа следует выполнить команду "/-/".

2.3. Для ввода числа с плавающей запятой требуется сначала ввести мантиссу, затем порядок. Ввод мантиссы и ее знака производится так же, как и ввод числа в естественной форме. Для ввода порядка числа следует подать команду "ВП", после чего ввести значение порядка. Для изменения знака порядка следует выполнить команду "/-/".

Если команда "ВП" выполняется при нулевом значении мантиссы, то мантисса принимает значение, равное единице. Если при вводе порядка используется более двух цифр последовательно, то последние цифры замещают ранее введенные. Применение команды "запятая" при вводе порядка вызывает ошибку.

Выполнение любой другой команды заканчивает ввод порядка числа. После ввода порядка число нормализуется, при этом в зависимости от величины, оно приводится к естественной форме или форме с плавающей запятой с мантиссой в диапазоне абсолютных значений от 1 до 10. Если при этом возникает значение порядка более 99, то происходит ошибка переполнения.

2.4. Если при вводе числа была допущена ошибка, команда "Сх" позволяет обнулить значение регистра X и повторить ввод.

2.5. Число вводится в стек командой "В↑", что позволяет разделить ввод двух чисел при последовательном наборе. После выполнения команды "В↑" число из регистра X копируется в регистр Y и следующее вводимое число замещает число в регистре X, как показано в табл. 1.

Таблица 1

Регистр Значение
до ввода чисел после ввода числа a после команды B↑ после ввода числа b
T t z y y
Z z y x x
Y y x число a число a
X x число a число a число b
X1 x1 x1 x1 x1

2.6. Замещение существующего в регистре стека X числа при вводе следующего определяется способом ввода существующего числа. Для этого анализируется состояние специального признака перезаписи. Признак сбрасывается или устанавливается при выполнении каждой команды.

Различие в способах перемещения информации в стеке в зависимости от состояния признака перезаписи обусловлено удобством ввода чисел при цепочечных вычислениях и при сбросе ошибочного набранного числа.

Если признак перезаписи установлен, то при вводе числа содержимое регистров Y, Z, T и X1 не изменяется, содержимое регистра X заменяется (табл. 2).

Таблица 2

Регистр Значение до выполнения команды Значение после выполнения команды
T t t
Z z z
Y y y
X x введенное число
X1 x1 x1

Если признак перезаписи не установлен, то при вводе числа содержимое регистров X, Y, Z переносится в регистры Y, Z и T соответственно. Содержимое регистра T теряется, регистра X1 не изменяется (табл. 3).

Таблица 3

Регистр Значение до выполнения команды Значение после выполнения команды
T t z
Z z y
Y y x
X x введенное число
X1 x1 x1

В дальнейшем такое перемещение называется поднятием стека. При поднятии стека следует учитывать наличие признака перезаписи.

Команды "Cx", "ВП", цифр, а также запятой, если в X содержалось число нуль, устанавливают признак перезаписи. Команды "В↑", "/-/" и "С/П" состояние признака не изменяют. Все остальные команды признак перезаписи сбрасывают.

3. Операции со стеком

3.1. При выполнении одноместной операции ЭВМ выполняет действие с числом, находящимся в регистре X (см. табл. 4). При этом содержимое регистров Y, Z и T не изменяется. Число, находившееся до выполнения операции в регистре X, передается в регистр предыдущего результата X1. Результат одноместной операции передается в регистр X.

Таблица 4

Регистр Значение до выполнения команды Значение после выполнения команды
T t t
Z z z
Y y y
X x f(x)
X1 x1 x

3.2. При выполнении двухместной операции ЭВМ выполняет действие с числами, находящимися в регистрах X и Y (см. табл. 5). При этом в регистр Y переносится содержимое регистра Z, в регистр Z - содержимое регистра T. Значение регистра T не изменяется. Число, находившееся до выполнения операции в регистре X, передается в регистр предыдущего результата X1. Результат двухместной операции передается в регистр X.

Таблица 5

Регистр Значение до выполнения команды Значение после выполнения команды
T t t
Z z t
Y y z
X x f(x,y)
X1 x1 x

3.3. Команда "В↑" ("ENT") копирует содержимое регистра X в регистр Y и поднимает стек. Содержимое регистра X1 и признака перезаписи не изменяется См. табл. 6.

Таблица 6

Регистр Значение до выполнения команды Значение после выполнения команды
T t z
Z z y
Y y x
X x x
X1 x1 x1

3.4. Команда "↔" обменивает содержимое регистров X и Y. Содержимое регистра X переносится в X1. Содержимое регистров Z и T не изменяется. См. табл. 7.

Таблица 7

Регистр Значение до выполнения команды Значение после выполнения команды
T t t
Z z z
Y y x
X x y
X1 x1 x

3.5. Команда "F ⟳" ("F R") осуществляет кольцевое перемещение информации в стеке. Содержимое регистра X переносится в регистры X1 и T. Содержимое регистра Y перемещается в X, содержимое регистра Z в Y и содержимое регистра T в Z. См. табл. 8.

Таблица 8

Регистр Значение до выполнения команды Значение после выполнения команды
T t x
Z z t
Y y z
X x y
X1 x1 x

3.6. Команда "F Вх" ("F ANS") копирует в регистр X содержимое регистра предыдущего результата X1 и поднимает стек. См. табл. 9.

Таблица 9

Регистр Значение до выполнения команды Значение после выполнения команды
T t z
Z z y
Y y x
X x x1
X1 x1 x1

4. Загрузка чисел в стек

4.1. Команда "Cx" ("CX") сбрасывает содержимое регистра X, при этом в регистр записывается число нуль. Содержимое других регистров стека не изменяется. Команда устанавливает признак перезаписи.

4.2. Команда "F π" (F PI") записывает в регистр X константу π = 3,1415926535898 являющуюся отношением длины окружности к её диаметру. Стек поднимается.

4.3. Команда "К СЧ" ("K RAN") записывает в регистр X очередное значение случайного числа с равномерным распределением в диапазоне от 0 до 1, включая значение 0, исключая 1. Стек поднимается.

Примечание. При необходимости воспроизведения последовательности используется регистр функции инициализации генератора случайных чисел (R9046).

4.4. Команда "К ИПРГ" ("K PRGM") записывает в регистр X содержимое ячейки памяти программ с адресом, равным значению, содержащемуся в регистре X до выполнения команды. Содержимое ячейки памяти программ, один байт, записывается в регистр X в виде целого числа от 0 до 255. Число, находившееся до выполнения операции в регистре X, передаётся в регистр предыдущего результата X1.

Преобразование адреса при обращении к памяти программ происходит аналогично модификации при косвенной адресации. Для нахождения адреса дробная часть содержимого регистра X отбрасывается. Если до выполнения команды значение в регистре X было отрицательно, считывается содержимое ячейки с нулевым адресом. Если значение было больше 9999, в регистр записывается содержимое ячейки с адресом 9999.

Примечание. Аналогичные действия могут быть выполнены при помощи регистров функции чтения содержимого памяти программ (R9042-R9044).

5. Вызов в стек содержимого регистра памяти

5.1. Вызванное из регистра памяти число записывается в регистр X, стек поднимается. Содержимое регистра памяти, из которого было извлечено число, не изменяется.

Чтение из отсутствующих в ЭВМ регистров памяти не изменяет содержимое регистров стека.

5.2. Команды "ИП М" ("RM M") с регистровой адресацией записывают в X содержимое регистра памяти M, где М - регистры памяти от 0 до Е.

5.3. Команда "Р ИП ММ" ("P RM MM") с прямой адресацией записывает в Х содержимое регистра памяти ММ, где ММ - регистр памяти от 0 до 99.

5.4. Команда "РР ИП ММММ" ("PP RM MMMM") с прямой адресацией записывает в Х содержимое регистра памяти ММММ, где ММММ - регистр памяти от 0 до 9999.

5.5. Команды "К ИП М" ("K RM M") с косвенной регистровой адресацией записывают в X содержимое регистра памяти, номер которого указан в регистре М, где М - регистр памяти от 0 до Е. Перед выполнением команды содержимое регистра М модифицируется.

5.6. Команда "РК ИП ММ" ("PK RM MM") с косвенной адресацией записывает в X содержимое регистра памяти, номер которого указан в регистре ММ, где ММ - регистр памяти от 0 до 99. Перед выполнением команды содержимое регистра ММ модифицируется.

6. Запись из стека в регистр памяти

6.1. В регистр памяти записывается число, содержащееся в регистре X стека. Содержимое регистров стека не изменяется. Информация, записываемая в отсутствующие регистры памяти, теряется.

При выполнении команды в режиме автоматической работы информация копируется в энергонезависимую память и сохраняется при выключении питания. Для сохранения информации в режиме выполнения программы необходимо перед исполнением команды инициализировать регистр функции разрешения записи в энергонезависимую память (R9047).

6.2. Команды "П М" ("M M") с регистровой адресацией записывают число из X в регистр памяти М, где М - регистры памяти от 0 до Е.

6.3. Команда "Р П ММ" ("P M MM") с прямой адресацией записывает число из X в регистр памяти ММ, где ММ - регистр памяти от 0 до 99.

6.4. Команда "РР П ММММ" ("PP M MMMM") с прямой адресацией записывает число из X в регистр памяти ММММ, где ММММ - регистр памяти от 0 до 9999.

6.5. Команды "К П М" ("K M M") с косвенной регистровой адресацией записывают число из X в регистр памяти, номер которого указан в регистре М, где М - регистр памяти от 0 до Е. Перед выполнением команды содержимое регистра М модифицируется.

6.6. Команда "РК П ММ" (PK M MM") с косвенной адресацией записывает число из X в регистр памяти, номер которого указан в регистре ММ, где ММ - регистр памяти от 0 до 99. Перед выполнением команды содержимое регистра ММ модифицируется.

7. Математические функции

7.1. Команда "/-/" ("+/-") изменяет знак числа в регистре X. Содержимое других регистров стека и состояние признака перезаписи не изменяется.

7.2. Команда "ВП" ("EE") позволяет провести умножение числа в регистре X на степень 10. Команда устанавливает флаг перезаписи. Показатель степени вводится после команды "ВП" таким же образом, как и при вводе числа. Если в регистре X содержался нуль, то после выполнения команды "ВП" в него будет занесена единица.

Содержимое других регистров стека при выполнении команды не изменяется. Состояние регистров стека после выполнения команды "ВП a", где a - целое число от минус 99 до 99, приведено в табл. 10.

Таблица 10

Регистр Значение до выполнения команды Значение после выполнения команды
T t t
Z z z
Y y y
X x x*10a
X1 x1 x1

7.3. Двухместные команды арифметического сложения, вычитания, умножения и деления: "+", "-", "×" и "÷" оперируют с числами, находящимися в регистрах X и Y. Результат, равный соответственно y+x, y-x, y×x и y÷x, заносится в регистр X.

7.4. Одноместные команды "F 10x" ("F 10^X") и "F ex" ("F EXP") вычисляют показательные функции от содержимого регистра X по основаниям 10 и e = 2,7182818284590... соответственно. Результат помещается в регистр X.

Примечание. Неперово число e является пределом числовой последовательности (1+1/n)n при n, стремящимся к бесконечности.

7.5. Одноместные команды "F lg" и "F ln" вычисляют логарифмические функции от содержимого регистра X по основаниям 10 и e = 2,7182818284590... соответственно. Результат помещается в регистр X.

7.6. Одноместные команды "F sin", "F cos", "F tg" и "F arcsin", "F arccos", "F arctg" вычисляют тригонометрические и обратные тригонометрические функции от содержимого регистра X.

Аргумент тригонометрических функций и результат обратных тригонометрических функций может выражаться в градусах, градах (1 град = 0,9 градуса) или радианах.

Для переключения размерности в автоматическом режиме используется клавиша "Р-ГРД-Г". Установленная размерность выводится в левом верхнем углу экрана. Переключение размерности при выполнении программы пользователя выполняется при помощи регистра функции R9045.

7.7. Одноместные команды "F √" ("F SQRT"), "F x2" ("F X^2") и "F 1/x" вычисляют соответственно корень квадратный, квадрат и обратную величину от содержимого регистра X.

7.8. Команда "F xy" ("F X^Y") вычисляет степенную функцию от содержимого регистра X. Показатель степени заносится в регистр Y. Перемещение содержимого регистров стека приведено в табл. 11.

Таблица 11

Регистр Значение до выполнения команды Значение после выполнения команды
T t t
Z z z
Y y y
X x xy
X1 x1 x

7.9. Одноместная команда "K |x|" ("K ABS") вычисляет абсолютное значение содержимого регистра X.

7.10. Одноместная команда "K ЗН" ("K SGN") определяет знак числа, содержащегося в регистре X. Команда соответствует вычислению сигнум-функции: если число положительное, в регистр X заносится единица; если число отрицательное, в X заносится минус единица; если в X содержался нуль, то значение не изменяется.

7.11. Одноместные команды "K [x]" ("K INT") и "K {x}" ("K FRAC") выделяют соответственно целую и дробную часть числа, содержащегося в регистре X. Операция производится отбрасыванием дробной или целой части числа соответственно. Знак числа не изменяется. Результат помещается в регистр X.

Действие команд "K [x]" и "K {x}" не эквивалентно математической операции вычисления целой и дробной части для отрицательных чисел. Результат действия команд "K [x]" и "K {x}" на числа для некоторых значений приведен в табл. 12.

Таблица 12

Значение в регистре X до выполнения команды Значение в регистре X после выполнения команды
K [x] K {x}
4,5 4 0,5
3,0 3 0
0,2 0 0,2
0 0 0
минус 0,2 0 минус 0,2
минус 3,0 минус 3 0
минус 4,5 минус 4 минус 0,5

8. Команды сравнения

8.1. Команда "K max" сравнивает содержимое регистров X и Y. Если содержимое регистра Y больше, чем содержимое регистра X, то происходит обмен содержимым регистров X и Y. Если содержимое X больше или равно Y, то никаких действий не выполняется. После выполнения команды большее из чисел, содержащихся в регистрах X и Y, перемещается в регистр X, меньшее в регистр Y. Содержимое других регистров стека не изменяется.

9. Логические операции

9.1. Логические операции в ЭВМ выполняются с байтовыми значениями, то есть с целыми числами, находящимися в диапазоне от нуля до 255 включительно. Если число, содержащееся в регистре, меньше нуля, в регистр перед выполнением операции заносится число нуль. Если число больше 255, в регистр заносится число 255. Результат операции также является целым числом из указанного диапазона.

9.2. Логические операции выполняются поразрядно для всех восьми битов байта после перевода исходных чисел в двоичную систему счисления. Таблица перевода десятичных чисел в двоичную систему счисления приведена в приложении В. Зависимость битов результата операций от битов аргументов приведена в табл. 13.

Таблица 13

Бит числа в регистре Бит результата операции
X Y AND OR XOR NOT
0 0 0 0 0 1
0 1 0 1 1 1
1 0 0 1 1 0
1 1 1 1 0 0

9.3. Двухместная команда "K AND" выполняет операцию логического умножения (конъюнкция, логическое "И") содержимого регистров X и Y.

9.4. Двухместная команда "K OR" выполняет операцию логического сложения (дизъюнкция, логическое "ИЛИ") содержимого регистров X и Y.

9.5. Двухместная команда "K XOR" выполняет операцию логического сложения по модулю 2 (исключающее "ИЛИ") содержимого регистров X и Y.

9.6. Одноместная команда "K NOT" выполняет операцию логической инверсии (отрицание, логическое "НЕ") содержимого регистра X.

10. Преобразование форматов

10.1. Преобразование форматов проводится для чисел, являющихся значениями угловых величин, выраженных в градусах, и временных величин, выраженных в часах. Указанные величины в ЭВМ могут быть представлены в трех различных форматах, описание которых приведено в табл. 14.

Таблица 14

Формат Схема знакомест Описание формата
Угловая величина Временная величина
Г Г,г Целая часть - градусы, дробная часть - доли градуса Целая часть - часы, дробная часть - доли часа
М Г,ММм Целая часть - градусы, две первые цифры дробной части - угловые минуты, остальные цифры дробной части - доли угловой минуты Целая часть - часы, две первые цифры дробной части - минуты, остальные цифры дробной части - доли минуты
МС Г,ММССс Целая часть - градусы, две первые цифры дробной части - угловые минуты, следующие две цифры - угловые секунды, остальные цифры дробной части - доли угловой секунды Целая часть - часы, две первые цифры дробной части - минуты, следующие две цифры - секунды, остальные цифры дробной части - доли секунды

10.2. Одноместная команда "К Г→М" ("K D->M") выполняет преобразование числа, записанного в регистр X, из формата "Г" в формат "М".

10.3. Одноместная команда "К М→Г" ("K M->D") выполняет преобразование числа, записанного в регистр X, из формата "М" в формат "Г". Если число минут в исходном числе имеет значение 60 или более, вырабатывается сообщение об ошибке.

10.4. Одноместная команда "К Г→МС" ("K D->MS") выполняет преобразование числа, записанного в регистр X, из формата "Г" в формат "МС".

10.5. Одноместная команда "К МС→Г" ("K MS->D") выполняет преобразование числа, записанного в регистр X, из формата "МС" в формат "Г". Если число минут или секунд в исходном числе имеет значение 60 или более, вырабатывается сообщение об ошибке.

11. Безусловные переходы

11.1. Команды безусловных переходов изменяют содержимое счетчика адреса. В режиме автоматической работы команды применяются для установки текущего адреса перед запуском или редактированием программы.

11.2. Команда "БП NN" ("GOTO NN") вызывает переход на адрес NN в пределах от 0 до 99 на текущей странице.

11.3. Команда "Р БП NNNN" ("P GOTO NN") вызывает переход на произвольный адрес NNNN в пределах от 0 до 9999.

11.4. Команды косвенных безусловных переходов "К БП M" ("K GOTO M") и "РК БП MM" ("PK GOTO MM") вызывают переход на адрес, записанный в регистрах памяти M (от 0 до E) или MM (от 0 до 99) соответственно. Содержимое регистров M и MM модифицируется.

12. Условные переходы

12.1. Команды условных переходов предназначены для организации ветвлений в программе пользователя. Команды изменяют содержимое счетчика адреса в зависимости от выполнения условия. В качестве условий в ЭВМ используется сравнение содержимого регистра X с нулём: "x<0", "x=0", "x≥0" и "x≠0". Содержимое стека не изменяется.

Команды условных переходов действуют только в режиме выполнения программы.

12.2. Команды вызывают изменение счетчика адреса, если записанное в команде условие не выполняется. Если условие выполняется, то следующей будет исполнена команда, записанная непосредственно за командой условного перехода.

12.3. Команды "F x<0 NN", "F x=0 NN", "F x≥0 NN" и "F x≠0 NN" вызывают переход на адрес NN в пределах от 0 до 99 на текущей странице, если условие не выполняется.

12.4. Команды "P x<0 NNNN", "P x=0 NNNN", "P x≥0 NNNN" и "P x≠0 NNNN" вызывают переход на адрес NNNN в пределах от 0 до 9999, если условие не выполняется.

12.5. Команды косвенных условных переходов "K x<0 M", "K x=0 M", "K x≥0 M" и "K x≠0 M" вызывают переход на адрес, записанный в регистре памяти M (от 0 до E), если условие не выполняется. Содержимое регистра M модифицируется.

12.6. Команды косвенных условных переходов "PK x<0 MM", "PK x=0 MM", "PK x≥0 MM" и "PK x≠0 MM" вызывают переход на адрес, записанный в регистре памяти MM (от 0 до 99), если условие не выполняется. Содержимое регистра MM модифицируется.

13. Команды организации циклов

13.1. Команды предназначены для организации циклических вычислений в программе пользователя.

Команды вызывают изменение счетчика адреса в зависимости от значения, записанного в регистр памяти с номером от 0 до 3. Номер регистра входит в обозначение команды после символа 'L'. Содержимое регистра модифицируется при выполнении команды.

Переход по записанному в команде адресу происходит, если значение в соответствующем регистре памяти больше единицы. В таком случае содержимое данного регистра декрементируется - из него вычитается единица. Если значение меньше или равно единице, то выполняется команда программы, следующая непосредственно за командой организации цикла.

Команды организации циклов действуют только в режиме выполнения программы.

13.2. Команды "F L0 NN", "F L1 NN", "F L2 NN" и "F L3 NN" вызывают переход на адрес NN от 0 до 99 в пределах текущей страницы, если значение в соответствующем регистре памяти больше единицы.

13.3. Команды "PF L0 NNNN", "PF L1 NNNN", "PF L2 NNNN" и "PF L3 NNNN" вызывают переход на адрес NNNN от 0 до 9999, если значение в соответствующем регистре памяти больше единицы.

13.4. При организации цикла с переходом в сторону уменьшения адреса, количество проходов по циклу будет совпадать со значением числа, изначально записанного в соответствующий регистр. После выхода из цикла в регистре остаётся число один.

14. Команды организации подпрограмм

14.1. Подпрограммы применяются для замены повторяющихся последовательностей команд в различных местах программы. Команды организации подпрограмм действуют только в режиме выполнения программы.

14.2. При переходе на подпрограмму, адрес команды, следующей за командой перехода, запоминается в стеке возврата. При возврате из подпрограммы, последний записанный адрес из стека возврата переносится в счетчик адреса.

14.3. Подпрограмма может быть вызвана из другой подпрограммы. Глубина возможных вложений определяется размером стека возврата. В ЭВМ возможно использование до 64 уровней вложения подпрограмм.

14.4. Команда "ПП NN" ("GSB NN") вызывает переход на подпрограмму по адресу NN от 0 до 99, в пределах текущей страницы.

В режиме автоматической работы команда "ПП" вызывает выполнение одной команды программы, расположенной по текущему адресу. Значение счетчика адреса увеличивается на длину выполненной команды. Команда предназначена для пошагового прохода программы в процессе отладки.

14.5. Команда "Р ПП NNNN" ("P GSB NNNN") вызывает переход на подпрограмму по адресу NNNN от 0 до 9999.

14.6. Команды "К ПП M" ("K GSB M") и "РК ПП ММ" ("PK GSB MM") вызывают переход на подпрограмму по адресу, записанному в регистрах М (от 0 до Е) и ММ (от 0 до 99) соответственно. Содержимое регистров М и ММ модифицируется.

14.7. Команда "В/О" ("RTN") вызывает возврат из подпрограммы. Если команда "В/О" использована вне подпрограммы (адрес в стеке возврата отсутствует), то происходит безусловный переход на адрес 01 в пределах текущей страницы.

В режиме автоматической работы команда "В/О" очищает стек возврата и сбрасывает содержимое счетчика адреса, что эквивалентно переходу на нулевой адрес.

15. Команды управления

15.1. Команда "С/П" ("R/S") вызывает останов вычислений по программе. После исполнения команды ЭВМ переходит из режима выполнения программы в режим автоматической работы. На экран выводятся значения регистров стека.

Значение счетчика адреса устанавливается на команду, следующую за командой "С/П".

Действие команды может быть блокировано или изменено при помощи регистра функции разрешения автоматического запуска программы (R9048).

В режиме автоматической работы команда "С/П" запускает выполнение программы пользователя с текущего адреса, который определяется содержимым счетчика адреса.

15.2. Команды "К -" и "К ÷" вызывают аварийный останов вычислений по программе. После исполнения команд ЭВМ переходит из режима выполнения программы в режим автоматической работы. На экран выводятся значения регистров стека, в поле вывода регистра Х заносится сообщение "ERROR".

Значение счетчика адреса устанавливается на команду, следующую за командой аварийного останова.

Действие команд может быть блокировано или изменено при помощи регистра функции разрешения автоматического запуска программы (R9048).

15.3. Команда "К НОП" ("K NOP") - нет операции, никаких действий не вызывает. Обычно применяется при редактировании программы для исключения отдельных команд.

15.4. Команда "К ЭКР" ("K SCR") вызывает обновление содержимого экрана в процессе выполнения программы. Применяется для индикации результатов промежуточных вычислений и отображения строки комментариев.

15.5. Команда "К ГРФ" ("K GRPH") выводит на индикатор содержимое графического экрана в процессе выполнения программы. Применяется для вывода результатов вычислений в графическом виде.

15.6. Команда "РР В/О" ("PP RTN") вызывает возврат из прерывания. Механизм прерываний в ЭВМ реализован при помощи функций, адресуемых через регистры памяти. При использовании вне прерывания действие аналогично команде "В/О".

15.7. Коды, не имеющие мнемонических обозначений в системе команд ЭВМ, интерпретируются как однобайтовые команды и исполняются аналогично команде "K НОП".

16. Некорректные действия и аварийные ситуации

16.1. При выполнении некорректных действий или возникновении аварийной ситуации выполнение программы останавливается. Если перезапуск программы запрещён, ЭВМ переходит в режим автоматической работы, на экран выводится сообщение об ошибке "ERROR", описание ошибки выводится в строке комментариев. После появления сообщения об ошибке можно проводить ввод чисел и дальнейшие вычисления или перезапустить программу.

Если автоматический перезапуск программы разрешён, на экран выводится сообщение об ошибке и её описание. После появления сообщения можно остановить программу или перезапустить её с нулевого адреса.

Информация об ошибках, возникающих во время выполнения программы пользователя, может быть занесена в журнал.

16.2 Ошибка формата числа (код 01) возникает при неверном представлении внутренних данных.

16.3. Любая операция, приводящая к появлению в регистре X числа со значением порядка более 99, вызывает ошибку переполнения (код 02).

16.4. Ошибка деления на ноль (код 03) возникает в результате выполнения операций "÷" или "F 1/x" при записанном в регистр стека X нулевом значении.

16.5. При использовании в качестве аргумента функции числа, не входящего в область допустимых значений, возникает ошибка аргумента (код 04).

Преобразование формата угловых и временных величин вызывает ошибку аргумента, если исходное значение не соответствует предполагаемому формату данных.

16.6. При попытке перехода по адресам свыше 9999 в командах условных и безусловных переходов, организации циклов или обращений к подпрограмме возникает ошибка несуществующего адреса (код 05).

16.7. Использование свыше 64 уровней вложения подпрограмм вызывает ошибку переполнения стека подпрограмм (код 06).

16.8. Возникновение свыше 16 отложенных прерываний вызывает ошибку переполнения очереди прерываний (код 07).

16.9. Ошибка контрольной суммы памяти программ (код 08) вызывается при автоматическом тестировании области памяти программ в случае выявления несовпадения текущей контрольной суммы с ранее рассчитанной.

16.10. Команды аварийного останова "К -" и "К ÷" вызывают сообщения об ошибке (коды 09 и 10 соответственно).

16.11. Команда "запятая" при вводе порядка числа вызывает ошибку формата "ВП," (код 11).




Приложение A (обязательное)

Таблица А.1

Мнемонические обозначения и описание команд ЭВМ

Значение Символ Команда
DEC HEX Рус Лат Длина Описание
0 00h 0 0 1 Ввод цифры 0
1 01h   1 1 1 Ввод цифры 1
2 02h   2 2 1 Ввод цифры 2
3 03h   3 3 1 Ввод цифры 3
4 04h   4 4 1 Ввод цифры 4
5 05h   5 5 1 Ввод цифры 5
6 06h   6 6 1 Ввод цифры 6
7 07h   7 7 1 Ввод цифры 7
8 08h   8 8 1 Ввод цифры 8
9 09h   9 9 1 Ввод цифры 9
10 0Ah   , , 1 Ввод десятичной запятой
11 0Bh   /-/ +/- 1 Смена знака
12 0Ch   ВП EE 1 Ввод порядка
13 0Dh   Cx CX 1 Сброс содержимого регистра X
14 0Eh   B↑ ENT 1 Ввод в стек
15 0Fh   F Bx F ANS 1 Вызов числа в регистр X из регистра предыдущего результата X1
16 10h   + + 1 Сложение
17 11h   - - 1 Вычитание
18 12h   × * 1 Умножение
19 13h   ÷ / 1 Деление
20 14h   <-> 1 Обмен содержимого регистров X и Y
21 15h   F 10x F 10^X 1 10 в степени X
22 16h   F ex F EXP 1 e (2,71828...) в степени X
23 17h   F lg F LG 1 Десятичный логарифм
24 18h   F ln F LN 1 Натуральный логарифм
25 19h   F arcsin F ARCSIN 1 Арксинус
26 1Ah   F arccos F ARCCOS 1 Арккосинус
27 1Bh   F arctg F ARCTG 1 Арктангенс
28 1Ch   F sin F SIN 1 Синус
29 1Dh   F cos F COS 1 Косинус
30 1Eh   F tg F TG 1 Тангенс
31 1Fh          
32 20h "пробел" F π F PI 1 Занесение в стек константы π (3,14159...)
33 21h ! F √ F SQRT 1 Квадратный корень
34 22h " F x2 F X^2 1 Возведение в квадрат
35 23h # F 1/x F 1/X 1 Обратная величина
36 24h $ F xy F X^Y 1 Возведение x в степень y
37 25h % F ⟳ F R 1 Кольцевое передвижение информации в стеке
38 26h & K М→Г K M->D 1 Перевод величин из формата М в формат Г
39 27h ' K - K - 1 Аварийный останов
40 28h ( K ИПРГ K PRGM 1 Считывание байта из памяти программ
41 29h ) K ÷ K / 1 Аварийный останов
42 2Ah * K МС→Г K MS->D 1 Перевод величин из формата МС в формат Г
43 2Bh +        
44 2Ch ,        
45 2Dh -        
46 2Eh .        
47 2Fh /        
48 30h 0 K Г→МС K D->MS 1 Перевод величин из формата Г в формат МС
49 31h 1 K |x| K ABS 1 Абсолютное значение
50 32h 2 K ЗН K SGN 1 Определение знака числа
51 33h 3 K Г→М K D->M 1 Перевод величин из формата Г в формат М
52 34h 4 K [x] K INT 1 Выделение целой части
53 35h 5 K {x} K FRAC 1 Выделение дробной части
54 36h 6 K max K MAX 1 Определение максимального значения
55 37h 7 K AND K AND 1 Логическое умножение
56 38h 8 K OR K OR 1 Логическое сложение
57 39h 9 K XOR K XOR 1 Логическое сложение по модулю 2
58 3Ah : K NOT K NOT 1 Логическая инверсия
59 3Bh ; K СЧ K RAN 1 Генерация случайного числа от 0 до 1
60 3Ch <        
61 3Dh =        
62 3Eh >        
63 3Fh ?        
64 40h @ П 0 M 0 1 Запись содержимого регистра X в регистр 0
65 41h A П 1 M 1 1 - " - в регистр 1
66 42h B П 2 M 2 1 - " - в регистр 2
67 43h C П 3 M 3 1 - " - в регистр 3
68 44h D П 4 M 4 1 - " - в регистр 4
69 45h E П 5 M 5 1 - " - в регистр 5
70 46h F П 6 M 6 1 - " - в регистр 6
71 47h G П 7 M 7 1 - " - в регистр 7
72 48h H П 8 M 8 1 - " - в регистр 8
73 49h I П 9 M 9 1 - " - в регистр 9
74 4Ah J П A M A 1 - " - в регистр A
75 4Bh K П B M B 1 - " - в регистр B
76 4Ch L П C M C 1 - " - в регистр C
77 4Dh M П D M D 1 - " - в регистр D
78 4Eh N П E M E 1 - " - в регистр E
79 4Fh O Р П P M 2 Запись содержимого регистра X в регистры от 0 до 99
80 50h P С/П R/S 1 Операция остановки и пуск вычислений
81 51h Q БП GOTO 2 Безусловный переход в пределах страницы
82 52h R В/О RTN 1 Возврат из подпрограммы или переход на нулевой адрес страницы
83 53h S ПП GSB 2 Переход на подпрограмму в пределах страницы
84 54h T K НОП K NOP 1 Нет операции
85 55h U K ЭКР K SCR 1 Обновление экрана
86 56h V K ГРФ K GRPH 1 Вывод графической информации
87 57h W F x≠0 F X!=0 2 Переход по условию x≠0в пределах страницы
88 58h X F L2 F L2 2 Организация цикла с регистром 2 в пределах страницы
89 59h Y F x≥0 F X>=0 2 Переход по условию x≥0 в пределах страницы
90 5Ah Z F L3 F L3 2 Организация цикла с регистром 3 в пределах страницы
91 5Bh [ F L1 F L1 2 Организация цикла с регистром 1 в пределах страницы
92 5Ch \ F x<0 F X<0 2 Переход по условию x<0 в пределах страницы
93 5Dh ] F L0 F L0 2 Организация цикла с регистром 0 в пределах страницы
94 5Eh ^ F x=0 F X=0 2 Переход по условию x=0 в пределах страницы
95 5Fh _        
96 60h ` ИП 0 RM 0 1 Вызов в X содержимого регистра 0
97 61h a ИП 1 RM 1 1 -"- регистра 1
98 62h b ИП 2 RM 2 1 -"- регистра 2
99 63h c ИП 3 RM 3 1 -"- регистра 3
100 64h d ИП 4 RM 4 1 -"- регистра 4
101 65h e ИП 5 RM 5 1 -"- регистра 5
102 66h f ИП 6 RM 6 1 -"- регистра 6
103 67h g ИП 7 RM 7 1 -"- регистра 7
104 68h h ИП 8 RM 8 1 -"- регистра 8
105 69h i ИП 9 RM 9 1 -"- регистра 9
106 6Ah j ИП A RM A 1 -"- регистра A
107 6Bh k ИП B RM B 1 -"- регистра B
108 6Ch l ИП C RM C 1 -"- регистра C
109 6Dh m ИП D RM D 1 -"- регистра D
110 6Eh n ИП E RM E 1 -"- регистра E
111 6Fh o P ИП P RM 2 Вызов в X содержимого регистров от 0 до 99
112 70h p K x≠0 0 K X!=0 0 1 Косвенный переход по условию x≠0 по содержимому адресного регистра 0
113 71h q K x≠0 1 K X!=0 1 1 -"- регистра 1
114 72h r K x≠0 2 K X!=0 2 1 -"- регистра 2
115 73h s K x≠0 3 K X!=0 3 1 -"- регистра 3
116 74h t K x≠0 4 K X!=0 4 1 -"- регистра 4
117 75h u K x≠0 5 K X!=0 5 1 -"- регистра 5
118 76h v K x≠0 6 K X!=0 6 1 -"- регистра 6
119 77h w K x≠0 7 K X!=0 7 1 -"- регистра 7
120 78h x K x≠0 8 K X!=0 8 1 -"- регистра 8
121 79h y K x≠0 9 K X!=0 9 1 -"- регистра 9
122 7Ah z K x≠0 A K X!=0 A 1 -"- регистра A
123 7Bh { K x≠0 B K X!=0 B 1 -"- регистра B
124 7Ch | K x≠0 C K X!=0 C 1 -"- регистра C
125 7Dh } K x≠0 D K X!=0 D 1 -"- регистра D
126 7Eh ~ K x≠0 E K X!=0 E 1 -"- регистра E
127 7Fh PK x≠0 PK X!=0 2 Косвенный переход по условию x≠0 по содержимому адресных регистров от 0 до 99
128 80h А K БП 0 K GOTO 0 1 Косвенный безусловный переход по содержимому адресного регистра 0
129 81h Б K БП 1 K GOTO 1 1 -"- регистра 1
130 82h В K БП 2 K GOTO 2 1 -"- регистра 2
131 83h Г K БП 3 K GOTO 3 1 -"- регистра 3
132 84h Д K БП 4 K GOTO 4 1 -"- регистра 4
133 85h Е K БП 5 K GOTO 5 1 -"- регистра 5
134 86h Ж K БП 6 K GOTO 6 1 -"- регистра 6
135 87h З K БП 7 K GOTO 7 1 -"- регистра 7
136 88h И K БП 8 K GOTO 8 1 -"- регистра 8
137 89h Й K БП 9 K GOTO 9 1 -"- регистра 9
138 8Ah К K БП A K GOTO A 1 -"- регистра A
139 8Bh Л K БП B K GOTO B 1 -"- регистра B
140 8Ch М K БП C K GOTO C 1 -"- регистра C
141 8Dh Н K БП D K GOTO D 1 -"- регистра D
142 8Eh О K БП E K GOTO E 1 -"- регистра E
143 8Fh П PK БП PK GOTO 2 Косвенный безусловный переход по содержимому адресных регистров от 0 до 99
144 90h Р K x≥0 0 K X>=0 0 1 Косвенный переход по условию x≥0 по содержимому адресного регистра 0
145 91h С K x≥0 1 K X>=0 1 1 -"- регистра 1
146 92h Т K x≥0 2 K X>=0 2 1 -"- регистра 2
147 93h У K x≥0 3 K X>=0 3 1 -"- регистра 3
148 94h Ф K x≥0 4 K X>=0 4 1 -"- регистра 4
149 95h Х K x≥0 5 K X>=0 5 1 -"- регистра 5
150 96h Ц K x≥0 6 K X>=0 6 1 -"- регистра 6
151 97h Ч K x≥0 7 K X>=0 7 1 -"- регистра 7
152 98h Ш K x≥0 8 K X>=0 8 1 -"- регистра 8
153 99h Щ K x≥0 9 K X>=0 9 1 -"- регистра 9
154 9Ah Ъ K x≥0 A K X>=0 A 1 -"- регистра A
155 9Bh Ы K x≥0 B K X>=0 B 1 -"- регистра B
156 9Ch Ь K x≥0 C K X>=0 C 1 -"- регистра C
157 9Dh Э K x≥0 D K X>=0 D 1 -"- регистра D
158 9Eh Ю K x≥0 E K X>=0 E 1 -"- регистра E
159 9Fh Я PK x≥0 PK X>=0 2 Косвенный переход по условию x≥0 по содержимому адресных регистров от 0 до 99
160 0A0h а K ПП 0 K GSB 0 1 Косвенный переход на подпрограмму по содержимому адресного регистра 0
161 0A1h б K ПП 1 K GSB 1 1 -"- регистра 1
162 0A2h в K ПП 2 K GSB 2 1 -"- регистра 2
163 0A3h г K ПП 3 K GSB 3 1 -"- регистра 3
164 0A4h д K ПП 4 K GSB 4 1 -"- регистра 4
165 0A5h е K ПП 5 K GSB 5 1 -"- регистра 5
166 0A6h ж K ПП 6 K GSB 6 1 -"- регистра 6
167 0A7h з K ПП 7 K GSB 7 1 -"- регистра 7
168 0A8h и K ПП 8 K GSB 8 1 -"- регистра 8
169 0A9h й K ПП 9 K GSB 9 1 -"- регистра 9
170 0AAh к K ПП A K GSB A 1 -"- регистра A
171 0ABh л K ПП B K GSB B 1 -"- регистра B
172 0ACh м K ПП C K GSB C 1 -"- регистра C
173 0ADh н K ПП D K GSB D 1 -"- регистра D
174 0AEh о K ПП E K GSB E 1 -"- регистра E
175 0AFh п PK ПП PK GSB 2 Косвенный переход на подпрограмму по содержимому адресных регистров от 0 до 99
176 0B0h   K П 0 K M 0 1 Косвенная запись содержимого регистра X по содержимому адресного регистра 0
177 0B1h   K П 1 K M 1 1 -"- регистра 1
178 0B2h   K П 2 K M 2 1 -"- регистра 2
179 0B3h   K П 3 K M 3 1 -"- регистра 3
180 0B4h   K П 4 K M 4 1 -"- регистра 4
181 0B5h   K П 5 K M 5 1 -"- регистра 5
182 0B6h   K П 6 K M 6 1 -"- регистра 6
183 0B7h   K П 7 K M 7 1 -"- регистра 7
184 0B8h   K П 8 K M 8 1 -"- регистра 8
185 0B9h   K П 9 K M 9 1 -"- регистра 9
186 0BAh   K П A K M A 1 -"- регистра A
187 0BBh   K П B K M B 1 -"- регистра B
188 0BCh   K П C K M C 1 -"- регистра C
189 0BDh   K П D K M D 1 -"- регистра D
190 0BEh   K П E K M E 1 -"- регистра E
191 0BFh   PK П PK M 2 Косвенная запись содержимого регистра X по содержимому адресных регистров от 0 до 99
192 0C0h   K x<0 0 K X<0 0 1 Косвенный переход по условию x<0 по содержимому адресного регистра 0
193 0C1h   K x<0 1 K X<0 1 1 -"- регистра 1
194 0C2h   K x<0 2 K X<0 2 1 -"- регистра 2
195 0C3h   K x<0 3 K X<0 3 1 -"- регистра 3
196 0C4h   K x<0 4 K X<0 4 1 -"- регистра 4
197 0C5h   K x<0 5 K X<0 5 1 -"- регистра 5
198 0C6h   K x<0 6 K X<0 6 1 -"- регистра 6
199 0C7h   K x<0 7 K X<0 7 1 -"- регистра 7
200 0C8h   K x<0 8 K X<0 8 1 -"- регистра 8
201 0C9h   K x<0 9 K X<0 9 1 -"- регистра 9
202 0CAh   K x<0 A K X<0 A 1 -"- регистра A
203 0CBh   K x<0 B K X<0 B 1 -"- регистра B
204 0CCh   K x<0 C K X<0 C 1 -"- регистра C
205 0CDh   K x<0 D K X<0 D 1 -"- регистра D
206 0CEh   K x<0 E K X<0 E 1 -"- регистра E
207 0CFh   PK x<0 PK X<0 2 Косвенный переход по условию x<0 по содержимому адресных регистров от 0 до 99
208 0D0h   K ИП 0 K RM 0 1 Косвенный вызов в регистр X по содержимому адресного регистра 0
209 0D1h   K ИП 1 K RM 1 1 -"- регистра 1
210 0D2h   K ИП 2 K RM 2 1 -"- регистра 2
211 0D3h   K ИП 3 K RM 3 1 -"- регистра 3
212 0D4h   K ИП 4 K RM 4 1 -"- регистра 4
213 0D5h   K ИП 5 K RM 5 1 -"- регистра 5
214 0D6h   K ИП 6 K RM 6 1 -"- регистра 6
215 0D7h   K ИП 7 K RM 7 1 -"- регистра 7
216 0D8h   K ИП 8 K RM 8 1 -"- регистра 8
217 0D9h   K ИП 9 K RM 9 1 -"- регистра 9
218 0DAh   K ИП A K RM A 1 -"- регистра A
219 0DBh   K ИП B K RM B 1 -"- регистра B
220 0DCh   K ИП C K RM C 1 -"- регистра C
221 0DDh   K ИП D K RM D 1 -"- регистра D
222 0DEh   K ИП E K RM E 1 -"- регистра E
223 0DFh   PK ИП PK RM 2 Косвенный вызов в регистр X по содержимому адресных регистров от 0 до 99
224 0E0h р K x=0 0 K X=0 0 1 Косвенный переход по условию x=0 по содержимому адресного регистра 0
225 0E1h с K x=0 1 K X=0 1 1 -"- регистра 1
226 0E2h т K x=0 2 K X=0 2 1 -"- регистра 2
227 0E3h у K x=0 3 K X=0 3 1 -"- регистра 3
228 0E4h ф K x=0 4 K X=0 4 1 -"- регистра 4
229 0E5h х K x=0 5 K X=0 5 1 -"- регистра 5
230 0E6h ц K x=0 6 K X=0 6 1 -"- регистра 6
231 0E7h ч K x=0 7 K X=0 7 1 -"- регистра 7
232 0E8h ш K x=0 8 K X=0 8 1 -"- регистра 8
233 0E9h щ K x=0 9 K X=0 9 1 -"- регистра 9
234 0EAh ъ K x=0 A K X=0 A 1 -"- регистра A
235 0EBh ы K x=0 B K X=0 B 1 -"- регистра B
236 0ECh ь K x=0 C K X=0 C 1 -"- регистра C
237 0EDh э K x=0 D K X=0 D 1 -"- регистра D
238 0EEh ю K x=0 E K X=0 E 1 -"- регистра E
239 0EFh я PK x=0 PK X=0 2 Косвенный переход по условию x=0 по содержимому адресных регистров от 0 до 99
240 0F0h Ё        
241 0F1h ё P БП P GOTO 3 Безусловный переход
242 0F2h   РР В/О PP RTN 1 Возврат из прерывания
243 0F3h   P ПП P GSB 3 Переход на подпрограмму
244 0F4h   PP П PP M 3 Запись содержимого регистра X в регистры от 0 до 9999
245 0F5h          
246 0F6h   PP ИП PP RM 3 Вызов в X содержимого регистров от 0 до 9999
247 0F7h   P x≠0 P X!=0 3 Переход по условию x≠0
248 0F8h   PF L2 PF L2 3 Организация цикла с регистром 2
249 0F9h   P x≥0 P X>=0 3 Переход по условию x≥0
250 0FAh   PF L3 PF L3 3 Организация цикла с регистром 3
251 0FBh   PF L1 PF L1 3 Организация цикла с регистром 1
252 0FCh   P x<0 P X<0 3 Переход по условию x<0
253 0FDh   PF L0 PF L0 3 Организация цикла с регистром 0
254 0FEh   P x=0 P X=0 3 Переход по условию x=0
255 0FFh          



Таблица А.2

Таблица кодов операций

Ст. часть адреса Младшая часть адреса
0 1 2 3 4 5 6 7
0 0 1 2 3 4 5 6 7
1 + - × ÷ F 10x F ex F lg
2 F π F √ F x2 F 1/x F xy F ⟳ К М→Г К -
3 К Г→МС К |x| К ЗН К Г→М К [x] К {x} К max К AND
4 П 0 П 1 П 2 П 3 П 4 П 5 П 6 П 7
5 С/П БП * В/О ПП * К НОП К ЭКР К ГРФ F x≠0 *
6 ИП 0 ИП 1 ИП 2 ИП 3 ИП 4 ИП 5 ИП 6 ИП 7
7 K x≠0 0 K x≠0 1 K x≠0 2 K x≠0 3 K x≠0 4 K x≠0 5 K x≠0 6 K x≠0 7
8 К БП 0 К БП 1 К БП 2 К БП 3 К БП 4 К БП 5 К БП 6 К БП 7
9 К x≥0 0 К x≥0 1 К x≥0 2 К x≥0 3 К x≥0 4 К x≥0 5 К x≥0 6 К x≥0 7
A К ПП 0 К ПП 1 К ПП 2 К ПП 3 К ПП 4 К ПП 5 К ПП 6 К ПП 7
B К П 0 К П 1 К П 2 К П 3 К П 4 К П 5 К П 6 К П 7
C К x<0 0 К x<0 1 К x<0 2 К x<0 3 К x<0 4 К x<0 5 К x<0 6 К x<0 7
D К ИП 0 К ИП 1 К ИП 2 К ИП 3 К ИП 4 К ИП 5 К ИП 6 К ИП 7
E К x=0 0 К x=0 1 К x=0 2 К x=0 3 К x=0 4 К x=0 5 К x=0 6 К x=0 7
F   Р БП ** РР В/О Р ПП ** РР П **   РР ИП ** P x≠0 **

Продолжение таблицы А.2

Ст. часть адреса Младшая часть адреса
8 9 A B C D E F
0 8 9 , /-/ ВП Cx B↑ F Вх
1 F ln F arcsin F arccos F arctg F sin F cos F tg  
2 К ИПРГ К ÷ К МС→Г          
3 К OR К XOR К NOT К СЧ        
4 П 8 П 9 П A П B П C П D П E Р П *
5 F L2 * F x≥0 * F L3 * F L1 * F x<0 * F L0 * F x=0 *  
6 ИП 8 ИП 9 ИП A ИП B ИП C ИП D ИП E Р ИП *
7 K x≠0 8 K x≠0 9 K x≠0 A K x≠0 B K x≠0 C K x≠0 D K x≠0 E РK x≠0 *
8 К БП 8 К БП 9 К БП A К БП B К БП C К БП D К БП E РК БП *
9 К x≥0 8 К x≥0 9 К x≥0 A К x≥0 B К x≥0 C К x≥0 D К x≥0 E РК x≥0 *
A К ПП 8 К ПП 9 К ПП A К ПП B К ПП C К ПП D К ПП E РК ПП *
B К П 8 К П 9 К П A К П B К П C К П D К П E РК П *
C К x<0 8 К x<0 9 К x<0 A К x<0 B К x<0 C К x<0 D К x<0 E РК x<0 *
D К ИП 8 К ИП 9 К ИП A К ИП B К ИП C К ИП D К ИП E РК ИП *
E К x=0 8 К x=0 9 К x=0 A К x=0 B К x=0 C К x=0 D К x=0 E РК x=0 *
F PF L2 ** P x≥0 ** PF L3 ** PF L1 ** P x<0 ** PF L0 ** P x=0 **  

Примечания:

* - добавляется адрес или номер регистра от 00 до 99, команда занимает два байта;

** - добавляется адрес или номер регистра от 0000 до 9999, команда занимает три байта.




ПРИЛОЖЕНИЕ Б (справочное)

Различия в системах команд ЭВМ и ПМК

Б.1. В ЭВМ реализована базовая система команд советских программируемых микрокалькуляторов моделей ЭЛЕКТРОНИКА МК-52, ЭЛЕКТРОНИКА МК-61 и аналогичных (далее - ПМК).

Далее рассмотрены основные отличия, которые могут иметь значение при переносе программ ПМК на ЭВМ.

Б.2. В ЭВМ воспроизведены некоторые наиболее часто использовавшиеся в программах недокументированные возможности и особенности работы ПМК.

Б.3. Команды "П", "ИП", "F arcsin", "F arccos", "F arctg" в ЭВМ имеют обозначения, которые использовались в модели Б3-34 и аналогичных, вместо обозначений "x→П", "П→x", "sin-1", "cos-1" и "tg-1" применяемых в ПМК соответственно.

Б.4. Команды преобразования угловых и временных величин ("К М→Г", "К МС→Г", "К Г→МС", "К Г→М") в ЭВМ переименованы в целях удобства записи программ. Данные команды действуют в ЭВМ и ПМК одинаковым образом.

Б.5. Команда "К ИПРГ" с кодом 28h позволяет считать в регистр X содержимое ячейки памяти программ. Команда калькуляторов "К ×" с таким кодом служила для вывода аварийного сообщения "ERROR". Если в программе ПМК команда "К ×" использована для выдачи сообщения об ошибке, её следует заменить на "К -" или "К ÷" - эти команды в ЭВМ, как и в ПМК, вызывают аварийный останов с выводом сообщения. Перед заменой следует внимательно изучить алгоритм работы программы, поскольку код команды может быть использован одновременно и как адрес перехода.

Б.6. В ПМК команды с кодами 2Bh, 2Ch, 2Dh, 2Eh, 3Ch вызывают аварийный останов с выводом сообщения "ERROR". В ЭВМ эти команды аналогичны "К НОП".

В ПМК перед аварийным остановом происходит пропуск одного байта команды, следующей за командой, вызвавшей останов. В ЭВМ командой "С/П" выполнение программы может быть продолжено с команды, следующей за командой аварийного останова, если это действие не блокировано установкой регистра функции разрешения автоматического запуска программы (R9048).

Б.7. При останове программы клавишей "С/П" во время выполнения ПМК пропускает одну команду, как и при аварийном останове. Для корректного продолжения в ПМК требуется предварительно сделать шаг назад по программе. ЭВМ при запуске продолжает выполнение с команды, следующей за последней выполненной.

Б.8. Команды "К ЭКР" и "К ГРФ" используются в ЭВМ для вывода на индикатор содержимого регистров стека или графического экрана без останова исполняемой программы. Коды этих команд 55h и 56h совпадают с кодами команд "К 1" и "К 2", которые в ПМК не выполняют никаких действий, как и документированная команда "К НОП" с кодом 54h. По возможности, в используемой программе ПМК команды "К 1" и "К 2" следует заменить на "К НОП". Но алгоритм работы программы ПМК при использовании в ЭВМ команд "К ЭКР" и "К ГРФ" вместо "К 1" и "К 2" нарушен не будет.

В малосерийных аналогах ПМК команды с кодами 55h и 56h ("К ПВ" и "К ОД") выполняли операции обмена содержимым регистров данных и памяти программ. Программы для этих ПМК широко не публиковались.

Б.9. В системе команд ПМК присутствуют команды логических операций: "K ^", "K v", "K (+)" и "К ИНВ" с кодами 37h-3Ah. Они выполняются над числами, предварительно переведёнными в специальный формат: показатель степени и знак аннулируются, первый разряд мантиссы заменяется признаком результата логической операции "8,". Логические операции ПМК производятся в двоичном виде над остальными разрядами числа в указанном формате.

Команды ЭВМ с соответствующими кодами выполняют другие функции, а именно логические операции над байтами, представленными в виде десятичных чисел. В ЭВМ команды логических операций носят другие наименования: "K AND", "K OR", "K XOR" и "K NOT".

Программы ПМК, в которых используются команды логических операций, для выполнения на ЭВМ требуют существенной переработки.

Б.10. Реализация команды "К max", с кодом 36h, предназначенной для выделения большего из двух чисел, имеет в ПМК ряд особенностей. Число ноль воспринимается этой командой как наибольшее из всех чисел. Передвижение чисел по стеку в результате операции может быть выполнено различными способами, в зависимости от того, в X или Y находилось большее число, и было ли оно нулем. Меньшее число при этом может оказаться как в регистре Y, так и в X1.

В ЭВМ команда "K max" выполняет обмен содержимого регистров X и Y, если содержащееся в Y число больше, чем в X. В противном случае обмена не происходит. Это позволяет использовать команду для сортировки.

При корректном применении команды "K max" в программе ПМК, с предварительной проверкой на нуль и использованием только регистра X в качестве результата операции, ее действие в ПМК и ЭВМ идентично.

Если программа ПМК использует данную команду, следует обратить внимание, не применяется ли она для проверки на нулевое значение. В этом случае программу следует переработать.

Б.11. Генератор случайных чисел "К СЧ" в ПМК имеет короткий период и склонен к зацикливанию в пределах одного-двух чисел при использовании в реальных программах: на результат его работы влияют другие команды, начинающиеся с клавиши "К", а также содержимое регистров памяти и стека.

В ЭВМ применен генератор на основе регистра сдвига. Последовательность не повторяется после выключения-включения питания, но может быть воспроизведена после обращения к регистру функции инициализации генератора случайных чисел (R9046).

В ПМК при выполнении команды "К СЧ" происходит замещение содержимого регистра X, а в ЭВМ подъём стека, что следует учитывать при переносе программ.

Б.12. Команда "ВП" с кодом 0Ch предназначена в ПМК для ввода порядка числа, при этом допускает возможность изменения порядка результата предыдущих вычислений. В ЭВМ данная возможность документирована, команда "ВП" выполняет умножение числа X на соответствующую целую степень числа 10.

Если в регистре X до выполнения команды был ноль, в него заносится число 1, как и в ПМК. Это следует учитывать при выполнении умножения на степень десяти при помощи команды "ВП".

Прочие особенности работы команды "ВП", основанные на её некорректном использовании, в ЭВМ не реализованы.

Б.13. Команда "запятая" в ПМК имеет дополнительные свойства. При использовании в программе вне ввода числа, она стирает содержимое регистра X и восстанавливает в нем значение, бывшее после последней из команд: "0...9", "В↑", "/-/", "Cx", "FBx", "ИП М", "К ИП М".

В ЭВМ дополнительные свойства этой команды не реализованы.

Б.14. Шестнадцатиричные адреса в командах переходов ЭВМ воспринимаются так же, как и в ПМК.

При этом, использование шестнадцатеричных адресов в ЭВМ может привести к переходу на другую страницу памяти программ. Если в программе ПМК в адресах 100-104 присутствуют команды переходов или команда "В/О" вне подпрограммы, вместо них в ЭВМ можно использовать команды переходов с расширенным адресом.

Б.15. Команда "В/О" предназначена для организации возврата из подпрограмм. В ПМК эта команда может использоваться для выполнения перехода на адрес 01, аналогично команде "БП 01".

В ЭВМ при использовании команды "В/О" вне подпрограммы переход производится на адрес 01 в пределах текущей страницы. Возврат из подпрограммы командой "В/О" выполняется по полному адресу.

В ПМК при полном заполнении стека возвратов из подпрограмм команда "В/О" вне подпрограммы начинает выполнять переход на адреса, зависящие от предыдущего содержимого стека. В ЭВМ переход в этом случае всегда выполняется по адресу 01 текущей страницы и от предыдущего содержимого стека не зависит.

Б.16. Команды организации циклов "F L0", "F L1", "F L2" и "F L3" при корректном содержимом регистров R0...R3 выполняют в ПМК и ЭВМ одинаковые действия.

В ЭВМ, как и в ПМК, число 1 после выхода из цикла остается записанным в соответствующий регистр.

Если в регистрах содержатся числа, не входящие в диапазон от 1 до 99999999, действие этих команд отличается. В ПМК отрицательные числа и нуль записывают в регистр число минус 99999999 и дальнейший счет ведется в сторону увеличения, дробные числа уменьшаются на единицу младшего разряда мантиссы. Эти особенности в ЭВМ не поддерживаются.

Б.17. Возможности команд косвенной адресации в ПМК ограничены адресами программы от 0 до 99 и регистрами от 0 до E. Числа, по модулю меньшие единицы, или превышающие допустимое значение 14 или 99, в зависимости от команды, вызывают обращение к регистру памяти или шагу программы, номер которых вычисляется по неочевидным правилам.

При корректном использовании этих команд в программах ПМК они будут выполняться на ЭВМ без каких-либо отличий.

В ЭВМ, как и в ПМК, происходит модификация содержимого регистров, использующихся для косвенной адресации. Диапазон допустимых значений в ПМК и ЭВМ не совпадает. Если в программе ПМК команды косвенной адресации используются для выделения целой части числа, следует заменить их командой "К [x]".

Б.18. Недокументированная команда ПМК с кодом 3Dh копирует содержимое регистра X в X1. Команда ПМК с кодом 3Eh копирует Y в X, и X в X1. Регистры Z и T при этом не затрагиваются. В малосерийных аналогах ПМК команды "К Р" с этими кодами выполняют операцию ввода сегмента из накопителя эмулятора внешнего запоминающего устройства, программы для этих ПМК широко не публиковались.

В ЭКВМ они выполняются аналогично "К НОП".

Б.19. Основное отличие системы команд ЭВМ от ПМК составляют команды с расширенной адресацией. Система команд ЭВМ дополнена командами работы с дополнительными регистрами памяти и увеличенной памятью программ.

Команды с кодами 1Fh, 2Fh, 3Fh как в ПМК, так и в ЭВМ, аналогичны "К НОП" и не вызывают никаких действий. В ПМК команды с кодами от F0h до FFh также аналогичны "К НОП". Команда 5Fh ("тьма") вызывает в ПМК сбой внутренней программы, сбрасываемый только при отключении питания.

Команды с кодами 4Fh, 6Fh до EFh в ПМК аналогичны командам обращения к регистру R0 c кодами 40h, 60h-E0h.

В ЭВМ команды с кодами 4Fh, 6Fh-EFh являются двухбайтовыми и предназначены для работы с регистрами памяти от 0 до 99. Команды 4Fh и 6Fh записывают и считывают числа, остальные команды вызывают косвенное обращение. Команда 5Fh никаких действий не выполняет.

Команды F0h, F5h и FFh в ЭВМ действий не выполняют, при этом код FFh может использоваться наравне с 0 для указания конца строки в некоторых функциях.

Команда F2h "РР В/О" выполняет выход из прерывания. При использовании вне прерывания эта команда выполняется аналогично "В/О".

Команды F1h, F3h, F4h, F6-FEh в ЭВМ трехбайтовые. Команды F4h и F6h записывают и считывают числа в регистры от 0 до 9999 и используются для обращения как к регистрам памяти, так и к функциям и регистрам устройств. Остальные трехбайтовые команды выполняют переходы, циклы и обращения к подпрограммам по расширенным адресам от 0000 до 9999.




ПРИЛОЖЕНИЕ В (справочное)

Соответствие чисел, записанных в десятичной и двоичной системах счисления

Таблица В.1

00000 0000640100 0000 1281000 00001921100 0000
10000 0001650100 0001 1291000 00011931100 0001
20000 0010660100 0010 1301000 00101941100 0010
30000 0011670100 0011 1311000 00111951100 0011
40000 0100680100 0100 1321000 01001961100 0100
50000 0101690100 0101 1331000 01011971100 0101
60000 0110700100 0110 1341000 01101981100 0110
70000 0111710100 0111 1351000 01111991100 0111
80000 1000720100 1000 1361000 10002001100 1000
90000 1001730100 1001 1371000 10012011100 1001
100000 1010740100 1010 1381000 10102021100 1010
110000 1011750100 1011 1391000 10112031100 1011
120000 1100760100 1100 1401000 11002041100 1100
130000 1101770100 1101 1411000 11012051100 1101
140000 1110780100 1110 1421000 11102061100 1110
150000 1111790100 1111 1431000 11112071100 1111
160001 0000800100 0000 1441001 00002081101 0000
170001 0001810101 0001 1451001 00012091101 0001
180001 0010820101 0010 1461001 00102101101 0010
190001 0011830101 0011 1471001 00112111101 0011
200001 0100840101 0100 1481001 01002121101 0100
210001 0101850101 0101 1491001 01012131101 0101
220001 0110860101 0110 1501001 01102141101 0110
230001 0111870101 0111 1511001 01112151101 0111
240001 1000880101 1000 1521001 10002161101 1000
250001 1001890101 1001 1531001 10012171101 1001
260001 1010900101 1010 1541001 10102181101 1010
270001 1011910101 1011 1551001 10112191101 1011
280001 1100920101 1100 1561001 11002201101 1100
290001 1101930101 1101 1571001 11012211101 1101
300001 1110940101 1110 1581001 11102221101 1110
310001 1111950101 1111 1591001 11112231101 1111
320010 0000960110 0000 1601010 00002241110 0000
330010 0001970110 0001 1611010 00012251110 0001
340010 0010980110 0010 1621010 00102261110 0010
350010 0011990110 0011 1631010 00112271110 0011
360010 01001000110 0100 1641010 01002281110 0100
370010 01011010110 0101 1651010 01012291110 0101
380010 01101020110 0110 1661010 01102301110 0110
390010 01111030110 0111 1671010 01112311110 0111
400010 10001040110 1000 1681010 10002321110 1000
410010 10011050110 1001 1691010 10012331110 1001
420010 10101060110 1010 1701010 10102341110 1010
430010 10111070110 1011 1711010 10112351110 1011
440010 11001080110 1100 1721010 11002361110 1100
450010 11011090110 1101 1731010 11012371110 1101
460010 11101100110 1110 1741010 11102381110 1110
470010 11111110110 1111 1751010 11112391110 1111
480011 00001120111 0000 1761011 00002401111 0000
490011 00011130111 0001 1771011 00012411111 0001
500011 00101140111 0010 1781011 00102421111 0010
510011 00111150111 0011 1791011 00112431111 0011
520011 01001160111 0100 1801011 01002441111 0100
530011 01011170111 0101 1811011 01012451111 0101
540011 01101180111 0110 1821011 01102461111 0110
550011 01111190111 0111 1831011 01112471111 0111
560011 10001200111 1000 1841011 10002481111 1000
570011 10011210111 1001 1851011 10012491111 1001
580011 10101220111 1010 1861011 10102501111 1010
590011 10111230111 1011 1871011 10112511111 1011
600011 11001240111 1100 1881011 11002521111 1100
610011 11011250111 1101 1891011 11012531111 1101
620011 11101260111 1110 1901011 11102541111 1110
630011 11111270111 1111 1911011 11112551111 1111


НПП "СЕМИКО" (383) 271-01-25 (многоканальный)