MIN

Материал из ПМК вики
Перейти к навигации Перейти к поиску

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

MIN            ( y x −− x1 )                        Нахождение меньшего из двух чисел.
                                                    x1 := min (x, y)
Пример работы слова MIN

Слово MIN засылает в стек число x1, которое является наименьшим из двух чисел x и y.

Ввод слова MIN

В режиме ЛАТ последовательно нажмите три белые клавиши  ÷   7   4 

MIN и FMIN в стандарте ANS Forth

 6.1.1880   MIN                                                             CORE
            ( n1 n2 -- n3 )
            n3 меньшее из n1 и n2.

 12.6.1.1565   FMIN                      "f-min"                        FLOATING
            ( F: r1 r2 -- r3 ) or ( r1 r2 -- r3 )
            r3 меньшее из r1 и r2.

История

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

     MIN          n1 n2 -- n3                   79               "min"
          n3 is the lesser of n1 and n2 according to the operation of
          < .

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

MIN            n1 n2 -- n3                   127              "min"
    Leave the lesser of two numbers.

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

MIN           n1  n2  ---  min                 L0
       Leave the smaller of two numbers.

Реализация

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

1542 ;#MIN
1543 ; MIN              ( y x −− x1 )                        Меньшее из двух чисел. x1 := min (x, y)
1544 LMIN:           .DB     3
1545                 .TEXT   "MIN"                   ; ( a b −− min )
1546                 .DW     LINVERT
1547 MIN:            .DW     JMIN
1548 JMIN:           RM3 MB  1 +  MA M3
1549                 KRMB KRMA KMAX <−> KMA          ; Выделить минимум, обёртка вокруг K MAX (МК−161).
1550                 KGOTO9

Советская реализация

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

MIN          N1,N2->N3 МЕНЬШЕЕ ИЗ ЧИСЕЛ N1 И N2                 22

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

CODE MIN   ( N1,N2->N3 )  14 LHRW12 BAL, RW1 RW2 CR,
   POP BNH,   RW1 RW2 LR,  POPPUT1 B,  END-CODE

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

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

Ссылки


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