MAX: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Строка 67: Строка 67:
* См. слово [[MIN]]
* См. слово [[MIN]]
* Слова [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.1870 MAX] и [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.1.1562 FMAX (f-max)] в стандарте ANS Forth ''(англ.)''
* Слова [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.1870 MAX] и [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.1.1562 FMAX (f-max)] в стандарте ANS Forth ''(англ.)''
* Слова [http://www.forth200x.org/documents/html3/core/MAX.html MAX] и [http://www.forth200x.org/documents/html3/floating/FMAX.html FMAX (f-max)] в черновике Forth 200x ''(англ.)''
* Слова [http://forth-standard.org/standard/core/MAX MAX] и [http://forth-standard.org/standard/float/FMAX FMAX (f-max)] в черновике Forth 200x ''(англ.)''
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\05.OPERAZII%20NAD%20ZELYMI%20TISLAMI ОПЕРАЦИИ НАД ЦЕЛЫМИ ЧИСЛАМИ] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»]
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\05.OPERAZII%20NAD%20ZELYMI%20TISLAMI ОПЕРАЦИИ НАД ЦЕЛЫМИ ЧИСЛАМИ] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»]
* [http://www.forth.com/starting-forth/sf5/sf5.html The Philosophy of Fixed Point] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''
* [http://www.forth.com/starting-forth/sf5/sf5.html The Philosophy of Fixed Point] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''

Версия от 08:20, 29 марта 2016

MAX (максимум) — стандартное слово Каллисто. Нахождение большего из двух чисел.

MAX            ( x1 x2 -- x3 )

Засылает в стек число x3, которое является наибольшим из двух чисел x1 и x2.

Ввод слова MAX

В режиме ЛАТ последовательно нажмите три клавиши  ÷   ШГ←   0 

Детали реализации

Слово является «обёрткой» вокруг команды ЭКВМ К max.

FMAX в стандарте ANS Forth

12.6.1.1562   FMAX                      "f-max"                        FLOATING
           ( F: r1 r2 -- r3 ) or ( r1 r2 -- r3 )
           r3 большее из r1 и r2.

MAX в стандарте ANS Forth

6.1.1870   MAX                                                             CORE
           ( n1 n2 -- n3 )
           n3 большее из n1 и n2.

MAX в предыдущем стандарте Forth-83 (англ.)

     MAX          n1 n2 -- n3                   79               "max"
          n3 is the greater of n1 and n2 according to the operation of
          > .

MAX в стандарте Forth-79 (англ.)

MAX            n1 n2 -- n3                   218              "max"
    Leave the greater of two numbers.

MAX в fig-FORTH Release 1 glossary, май 1979 (англ.)

MAX           n1  n2  ---  max                L0
       Leave the greater of two numbers.

Реализация

Слово MAX в ФОРТ-ЕС было примитивом. Вот его описание и определение:

МАХ          N1,N2->N3 БОЛЬЕЕЕ ИЗ ЧИСЕЛ N1 И N2                 22

                     Экран номер 22
( 31.03.86   FILL ERASE BLANK COMPILE [ ] MIN MAX HEX DECIMAL)

CODE MAX   ( N1,N2->N3 )   14 LHRM12 BAL, RW1 RW2 CR,
   POP BNL,   RW1 RW2 LR,  POPPUT1 B,  END-CODE

В FORTH ИТЭФ слово MAX также было примитивом и опиралось на часть кода примитива MIN, вот их определения:

            HEAD     203Q,'MI',316Q,MIN                   ; MIN
            POP  AX
            POP  CX
            CMP  CX,  AX
            JL  DEEP
   TOP:     PUSH AX
            NEXT
   DEEP:    PUSH CX
            NEXT

            HEAD     203Q,'MA',330Q,MAX                   ; MAX
            POP  AX
            POP  CX
            CMP  CX, AX
            JGE  DEEP
            JMP  TOP

Ссылки


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.