ВП

Материал из ПМК вики
(перенаправлено с «0C»)
Перейти к навигации Перейти к поиску
Команда ВП
 ВП 
Код команды 0C
Русская мнемоника ВП
Латинская мнемоника EE
Группа команд ввод чисел
Число операндов
Нажимаемые клавиши  ВП 
Число шагов 1
Признак перезаписи Устанавливается
Первое появление Б3-21
Время выполнения 97,8 мкс (1,59 КНОП)
Скорость выполнения 10 200 команд/с

Команда ВП (лат. EE) «Ввод порядка» с кодом 0C используется для ввода чисел.

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

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

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

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

На МК-161 с прошивкой 1.20 (08.07.14) команда ВП выполняется за 97,8 мкс (1,59 КНОП), 10 200 команд/с.

Использование ВП для умножения на степень 10[править]

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

Содержимое других регистров стека при выполнении команды ВП не изменяется.

История[править]

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

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

Прочие особенности работы команды ВП, основанные на её некорректном использовании, в ЭКВМ не реализованы. К примеру, в советских ПМК выполнение последовательности команд В↑ Cx ВП в программе приводило к отбрасыванию у исходного числа всех разрядов, кроме первого, обнулению порядка, вычислению модуля числа и прибавлению к нему единицы. А последовательность команд Cx ВП ВП В↑, выполненная в автоматическом режиме, приводила к появлению на индикаторе сообщения  Г , то есть шестнадцатеричной цифры 'D'. Разработчики решили, что воспроизведение в ЭКВМ этих и нескольких десятков других подобных «особенностей» было бы явно излишнем.

Ссылки[править]

Команды, осуществляющие ввод числа
 0   1   2   3   4   5   6   7   8   9   ,  ВП /−/