2+

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

2+ (увеличить на два, два прибавить, читается «два-плюс») — фортовское слово Каллисто. Прибавление 2.

2+             ( x -- x1 )                     Прибавить два. x1 ← x + 2
Пример работы слова 2+

Слово 2+ увеличивает на 2 число, находящееся на вершине стека.

Ввод слова 2+[править]

В режиме NUM последовательно нажмите две белые клавиши  2   + 

История[править]

Слово 2+ присутствовало в стандартах Форта до 1994 года. Слово 2+ просто в реализации и, несмотря на своё отсутствие в ANS Forth, по-прежнему присутствует в большинстве реализаций Форта.

Первое найденное упоминание о слове 2+ датируется 1979 годом. В отличии от Форта, каллистянское слово 2+ способно увеличивать на 2 не только целые, но и числа с плавающей запятой.

2+ в предыдущем стандарте Forth-83 (англ.)[править]

     2+           w1 -- w2                      79          "two-plus"
          w2 is the result of adding two to w1 according to the
          operation of + .

2+ в стандарте Forth-79 (англ.)[править]

2+             n -- n+2                      135         "two-plus"
    Increment n by two, according to the operation of + .

2+ в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]

2+            n1  ---  n2
       Leave n1 incremented by 2.

Реализация[править]

1278 ;#TwoPlus
1279 ; 2+               ( x −− x1 )                          Прибавить два. x1 := x+2
1280 LTWOP:          .DB     2
1281                 .TEXT   "2+"                    ; ( x −− x+2 )
1282                 .DW     LONEP
1283 TWOP:           .DW     JTWOP                   ; Прибавление 2.
1284 JTWOP:          2
1285                 .DB 59H                         ; FX>=0 aka пропустить 1 байт
1286 JONEP:          1
1287 NONEP:          PKRM03 + PKM03  KGOTO9

Реализации из SP-Forth 4.20:

CODE 2+ ( W -> W+2 )
     LEA EAX, 2 [EAX]
     RET
END-CODE
…
: 2+ 2 + ;

Советская реализация[править]

Описание и определение слова 2+ в ядре ФОРТ-ЕС:

2+           W1->W2 УВЕЛИЧИТЬ W1 НА 2                          17

                     Экран номер 17
( 31.03.86   NEGATE ABS + - 1+ 1- 2+ 2- +!  1+!  )

: 2+ ( W1->W2)  2 + ;

В FORTH ИТЭФ слово 2+ было примитивом, вот его определение:

             HEAD    202Q,'2',253Q,TWOP                   ; 2+
             POP   AX
             ADD   AX, 2
             PUSH  AX
             NEXT

Ссылки[править]


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