2DROP
Перейти к навигации
Перейти к поиску
2DROP (два-сбросить, читается «два-дроп») — стандартное слово Каллисто. Снять со стека два верхних элемента.
2DROP ( y x -- ) Убрать пару чисел.
Удаляет из стека два верхних числа.
Ввод слова 2DROP[править]
В режиме NUM последовательно нажмите клавиши 2 Р-ГРД-Г K × 5 6
Для возврата в режим NUM нажмите синюю клавишу P .
2DROP в стандарте ANS Forth[править]
6.1.0370 2DROP "two-drop" CORE ( x1 x2 -- ) Удаляет пару-ячеек x1 x2 из стека.
История[править]
В Форте слово 2DROP — одно из самых древних и устоявшихся, не менялось с 1979 года.
В Каллисто редко возникает необходимость в числовых парах, поэтому слово 2DROP используется реже, чем в классическом Форте.
2DROP в предыдущем стандарте Forth-83 (англ.)[править]
2DROP 32b -- 79 "two-drop" 32b is removed from the stack.
2DROP в стандарте Forth-79 (англ.)[править]
2DROP d -- "two-drop" Drop the top double number on the stack.
Реализация[править]
В Каллисто 1.0 слово 2DROP реализовано, как примитив:
1946 ;#TwoDROP 1947 ; 2DROP ( y x −− ) Убрать пару чисел. 1948 LDDROP: .DB 5 1949 .TEXT "2DROP" ; ( dd −− ) 1950 .DW LROT 1951 DDROP: .DW JDDROP 1952 JDDROP: 2 PGOTO NDROP ; Удалить из стека число двойной длины. … 2053 NDROP: RM3 + M3 ; А сюда сваливается 2DROP 2054 KGOTO9
Но при необходимости 2DROP можно легко выразить через DROP:
: 2DROP ( y x --) DROP DROP ;
Реализация из SP-Forth 4.20:
CODE 2DROP ( x1 x2 -- ) \ 94 \ Убрать со стека пару ячеек x1 x2. MOV EAX, 4 [EBP] LEA EBP, 8 [EBP] RET END-CODE
Советская реализация[править]
Слово 2DROP в ядре ФОРТ-ЕС было определено через DROP
2DROP WD-> СНЯТЬ ВЕРХНЕЕ ДВОЙНОЕ ЗНАЧЕНИЕ 12 Экран номер 12 ( 31.03.86 ROLL PICK 2DUP 2DROP 2SWAP 2OVER 2ROT ) : 2DROP ( WD->) DROP DROP ;
В FORTH ИТЭФ слово 2DROP было примитивом, вот его определение:
HEAD 205Q,'2DRO',320Q,DDROP ; 2DROP DRO: ADD SP, 4 NEXT
Ссылки[править]
- Исходный текст слова 2DROP в Каллисто Классик 1.0
- См. слова DROP, 2DUP, 2SWAP
- Слово 2DROP (two-drop) в стандарте ANS Forth (англ.)
- Слово 2DROP (two-drop) в черновике Forth 200x (англ.)
- ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- How to Get Results в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |