К max: различия между версиями
AtH (обсуждение | вклад) |
SMB (обсуждение | вклад) мНет описания правки |
||
Строка 10: | Строка 10: | ||
Если программа советских ПМК использует данную команду, следует обратить внимание, не применяется ли она для проверки на нулевое значение. В этом случае программу следует переработать. | Если программа советских ПМК использует данную команду, следует обратить внимание, не применяется ли она для проверки на нулевое значение. В этом случае программу следует переработать. | ||
[[Category:Все команды]] | [[Category:Все команды]] | ||
[[Category:Команды ЭКВМ]] | [[Category:Команды ЭКВМ]] |
Версия от 23:21, 25 января 2015
Команда K max (лат. K MAX) «Определение максимального значения» с кодом операции 36 сравнивает содержимое регистров X и Y. Если содержимое регистра Y больше, чем содержимое регистра X, то происходит обмен содержимым регистров X и Y. Если содержимое X больше или равно Y, то никаких действий не выполняется. После выполнения команды большее из чисел, содержащихся в регистрах X и Y, перемещается в регистр X, меньшее в регистр Y. Содержимое других регистров стека не изменяется.
История
При реализации команды К max, с кодом 36, предназначенной для выделения большего из двух чисел, в советских ПМК был допущен ряд недоработок. Число ноль воспринималось этой командой как наибольшее из всех чисел. Передвижение чисел по стеку в результате операции могло быть выполнено различными способами, в зависимости от того, в X или Y находилось большее число, и было ли оно нулем. Меньшее число при этом могло оказаться как в регистре Y, так и в X1.
В ЭКВМ для команды K max реализовано пожелание, высказанное в статье В.А. Хмелюка, Д.Б. Хрусталева и А.В. Васильева в разделе «Школа начинающего программиста. Занятие 21» журнала «Наука и Жизнь» №11 - 1988 г. Если число в Y больше, чем в X, происходит операция ↔, обменивающая содержимое этих регистров. В противном случае обмена не происходит. Это позволяет использовать команду для сортировки.
При корректном применении команды K max в программах калькуляторов, с предварительной проверкой на нуль и использованием только регистра X в качестве результата операции, ее действие в советских ПМК и ЭКВМ идентично.
Если программа советских ПМК использует данную команду, следует обратить внимание, не применяется ли она для проверки на нулевое значение. В этом случае программу следует переработать.