К max

Материал из ПМК вики
(перенаправлено с «K max»)
Перейти к навигации Перейти к поиску
Команда К max
 К   max 
Код команды 36
Русская мнемоника К max
Латинская мнемоника K MAX
Группа команд сравнение
Число операндов двухместная
Нажимаемые клавиши  К   9 
Число шагов 1
Признак перезаписи сбрасывается
Первое появление МК-61
Время выполнения ?
Скорость выполнения ? команд/с

Команда  К   max  (лат. K MAX) «Определение максимального значения» с кодом операции 36 сравнивает содержимое регистров X и Y. Если содержимое регистра Y больше, чем содержимое регистра X, то происходит обмен содержимым регистров X и Y. Если содержимое X больше или равно Y, то никаких действий не выполняется.

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

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

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

В ЭКВМ для команды K max реализовано пожелание, высказанное в статье В.А. Хмелюка, Д.Б. Хрусталева и А.В. Васильева в разделе «Школа начинающего программиста. Занятие 21» журнала «Наука и жизнь» №11 - 1988 г. Если число в Y больше, чем в X, происходит операция ↔, обменивающая содержимое этих регистров. В противном случае обмена не происходит. Это позволяет использовать команду для сортировки.

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

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

Советская реализация[править]

Из книги Я.К. Трохименко «Программируемые микрокалькуляторы. Устройство и пользование.» (стр. 139):

«Функциональные операторы могут реализоваться арифметическими выражениями, содержащими условные переходы. Например, оператор MAX (ПМК семейства «Электроника МК-52») являтся по существу условным оператором: если (РY-РX) ≥ 0, то РX: = РY.»

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