MIN
Перейти к навигации
Перейти к поиску
MIN (минимум) — стандартное слово Каллисто. Нахождение меньшего из двух чисел.
MIN ( y x −− x1 ) Нахождение меньшего из двух чисел. x1 := min (x, y)
Слово 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
Реализации из SP-Forth 4.20:
CODE MIN ( n1 n2 -- n3 ) \ 94 \ n3 - меньшее из n1 и n2. ARCH-P6 [IF] MOV EDX, [EBP] CMP EDX, EAX CMOVL EAX, EDX [ELSE] CMP EAX, [EBP] JG # ' DROP [THEN] LEA EBP, 4 [EBP] RET END-CODE
CODE FMIN \ * MOV EBX, EAX FCOM FSTSW EAX SAHF JA SHORT @@1 FXCH @@1: FFREE ST FINCSTP MOV EAX, EBX RET END-CODE
Советская реализация
Слово 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
Ссылки
- Исходный текст слова MIN в Каллисто Классик 1.0
- См. слово MAX
- Слова MIN и FMIN (f-min) в стандарте ANS Forth (англ.)
- Слова MIN и FMIN (f-min) в черновике Forth 200x (англ.)
- ОПЕРАЦИИ НАД ЦЕЛЫМИ ЧИСЛАМИ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- The Philosophy of Fixed Point в книге Leo Brodie Starting Forth (англ.)
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |