Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
| '''2+''' (увеличить на два, два прибавить, читается «два-плюс») — фортовское слово [[Каллисто]]. Прибавление 2. | | '''2+''' — стандартное слово [[Каллисто]]. |
| 2+ ( x -- x1 ) Прибавить два. x1 ← x + 2
| |
| [[Файл:CallistoTwo.png|thumb|right|264px|Пример работы слова 2+]]
| |
| Слово 2+ увеличивает на 2 число, находящееся на вершине [[Стек данных|стека]].
| |
|
| |
|
| == Ввод слова 2+ ==
| | Прибавление 2. |
| В [[Режим NUM|режиме NUM]] последовательно нажмите две белые клавиши [[Клавиша 2|{{Серая клавиша|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.
| |
| | |
| == Реализация ==
| |
| <pre>
| |
| 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
| |
| </pre>
| |
| Реализации из SP-Forth 4.20:
| |
| <pre>
| |
| CODE 2+ ( W -> W+2 )
| |
| LEA EAX, 2 [EAX]
| |
| RET
| |
| END-CODE
| |
| …
| |
| : 2+ 2 + ;
| |
| </pre>
| |
| | |
| === Советская реализация ===
| |
| Описание и определение слова 2+ в ядре ФОРТ-ЕС:
| |
| <PRE>
| |
| 2+ W1->W2 УВЕЛИЧИТЬ W1 НА 2 17
| |
| | |
| Экран номер 17
| |
| ( 31.03.86 NEGATE ABS + - 1+ 1- 2+ 2- +! 1+! )
| |
| | |
| : 2+ ( W1->W2) 2 + ;
| |
| </PRE>
| |
| | |
| В FORTH ИТЭФ слово 2+ было [[примитив]]ом, вот его определение:
| |
| <PRE>
| |
| HEAD 202Q,'2',253Q,TWOP ; 2+
| |
| POP AX
| |
| ADD AX, 2
| |
| PUSH AX
| |
| NEXT
| |
| </PRE>
| |
| | |
| == Ссылки ==
| |
| * {{Исходник|TwoPlus|2+}}
| |
| * См. слова [[Слово +|+]], [[1+]], [[2−]], [[2×]] и [[2/]]
| |
| * См. также [[символ +]]
| |
| * [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] ''(англ.)''
| |
|
| |
|
|
| |
|
| | {{нет иллюстраций}} |
| {{заготовка}} | | {{заготовка}} |
| [[Категория:Слова Каллисто]] | | [[Категория:Слова Каллисто]] |
| [[Категория:Примитивы]]
| |
| [[Категория:Арифметические операции Каллисто]] | | [[Категория:Арифметические операции Каллисто]] |
| [[Категория:Одноместные операции Каллисто]] | | [[Категория:Одноместные операции Каллисто]] |