Редактирование: MAX

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

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

Текущая версия Ваш текст
Строка 6: Строка 6:


== Ввод слова MAX ==
== Ввод слова MAX ==
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите три клавиши [[Клавиша ÷|{{Серая клавиша|÷}}]] {{ШГ←}} [[Клавиша 0|{{Серая клавиша|0}}]]
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите три клавиши [[Клавиша ÷|{{Серая клавиша|÷}}]] [[Клавиша ШГ влево|{{Чёрная клавиша|ШГ←}}]] [[Клавиша 0|{{Серая клавиша|0}}]]
 
== Детали реализации ==
Слово является усовершенствованной «обёрткой» вокруг команды ЭКВМ [[К max]].


== MAX и FMAX в стандарте ANS Forth ==
== MAX и FMAX в стандарте ANS Forth ==
Строка 36: Строка 39:


== Реализация ==
== Реализация ==
В [[Каллисто|Каллисто 1.0]] слово MAX является «обёрткой» вокруг команды ЭКВМ [[К max]]:
<pre>
1552 ;#MAX
1553 ; MAX              ( y x −− x1 )                        Большее из двух чисел. x1 := max (x, y)
1554 LMAX:          .DB    3
1555                .TEXT  "MAX"                  ; ( a b −− max )
1556                .DW    LMIN
1557 MAX:            .DW    JMAX
1558 JMAX:          RM3 MB  1 +  MA M3
1559                KRMB KRMA KMAX KMA              ; Выделить максимум, обёртка вокруг K MAX.
1560                KGOTO9
</pre>
Реализации из SP-Forth 4.20:
<pre>
CODE MAX ( n1 n2 -- n3 ) \ 94
\ n3 - большее из n1 и n2.
ARCH-P6 [IF]
    MOV    EDX, [EBP]
    CMP    EDX, EAX
    CMOVG  EAX, EDX
[ELSE]   
    CMP    EAX, [EBP]
    JL # ' DROP
[THEN]   
    LEA EBP, 4 [EBP]
    RET
END-CODE
</pre>
<pre>
CODE FMAX \ *
      MOV EBX, EAX
      FCOM
      FSTSW  EAX
      SAHF
      JB  SHORT @@1
      FXCH
@@1:  FFREE  ST
      FINCSTP
      MOV EAX, EBX
      RET
END-CODE
</pre>
=== Советская реализация ===
Слово MAX в ФОРТ-ЕС было [[примитив]]ом. Вот его описание и определение:
Слово MAX в ФОРТ-ЕС было [[примитив]]ом. Вот его описание и определение:
<PRE>
<PRE>
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)
Источник — https://pmk.the-hacker.ru/MAX