ЭКВМ Электроника МК |
Главная / ЭКВМ / Техническая информация |
НПКД.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
2.6. Замещение существующего в регистре стека X числа при вводе следующего определяется способом ввода существующего числа. Для этого анализируется состояние специального признака перезаписи. Признак сбрасывается или устанавливается при выполнении каждой команды. Различие в способах перемещения информации в стеке в зависимости от состояния признака перезаписи обусловлено удобством ввода чисел при цепочечных вычислениях и при сбросе ошибочного набранного числа. Если признак перезаписи установлен, то при вводе числа содержимое регистров Y, Z, T и X1 не изменяется, содержимое регистра X заменяется (табл. 2). Таблица 2
Если признак перезаписи не установлен, то при вводе числа содержимое регистров X, Y, Z переносится в регистры Y, Z и T соответственно. Содержимое регистра T теряется, регистра X1 не изменяется (табл. 3). Таблица 3
В дальнейшем такое перемещение называется поднятием стека. При поднятии стека следует учитывать наличие признака перезаписи. Команды "Cx", "ВП", цифр, а также запятой, если в X содержалось число нуль, устанавливают признак перезаписи. Команды "В↑", "/-/" и "С/П" состояние признака не изменяют. Все остальные команды признак перезаписи сбрасывают. 3. Операции со стеком3.1. При выполнении одноместной операции ЭВМ выполняет действие с числом, находящимся в регистре X (см. табл. 4). При этом содержимое регистров Y, Z и T не изменяется. Число, находившееся до выполнения операции в регистре X, передается в регистр предыдущего результата X1. Результат одноместной операции передается в регистр X. Таблица 4
3.2. При выполнении двухместной операции ЭВМ выполняет действие с числами, находящимися в регистрах X и Y (см. табл. 5). При этом в регистр Y переносится содержимое регистра Z, в регистр Z - содержимое регистра T. Значение регистра T не изменяется. Число, находившееся до выполнения операции в регистре X, передается в регистр предыдущего результата X1. Результат двухместной операции передается в регистр X. Таблица 5
3.3. Команда "В↑" ("ENT") копирует содержимое регистра X в регистр Y и поднимает стек. Содержимое регистра X1 и признака перезаписи не изменяется См. табл. 6. Таблица 6
3.4. Команда "↔" обменивает содержимое регистров X и Y. Содержимое регистра X переносится в X1. Содержимое регистров Z и T не изменяется. См. табл. 7. Таблица 7
3.5. Команда "F ⟳" ("F R") осуществляет кольцевое перемещение информации в стеке. Содержимое регистра X переносится в регистры X1 и T. Содержимое регистра Y перемещается в X, содержимое регистра Z в Y и содержимое регистра T в Z. См. табл. 8. Таблица 8
3.6. Команда "F Вх" ("F ANS") копирует в регистр X содержимое регистра предыдущего результата X1 и поднимает стек. См. табл. 9. Таблица 9
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
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
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
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
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 Мнемонические обозначения и описание команд ЭВМ
Таблица А.2 Таблица кодов операций
Продолжение таблицы А.2
Примечания: * - добавляется адрес или номер регистра от 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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
НПП "СЕМИКО" (383) 271-01-25 (многоканальный) |