RDROP

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

RDROP — встроенное слово Каллисто. Удалить верхний элемент стека возвратов.

RDROP          ( −− )                               Удалить верхний адрес со стека возвратов.

Примитив, эквивалентный последовательности из двух слов R> DROP

После выполнения команды RDROP возврат будет осуществлён не в процедуру, откуда произошёл вызов, а в процедуру более раннего уровня или на пульт Каллисто.

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

В режиме ЛАТ последовательно нажмите клавиши  ×   K   ×   5   6 

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

 720 NLEV:           RM2 + M2                        ; Убрать из стека возвратов два слова, счётчик и адрес
 721                 KGOTO9
…
 736 JLEV:           2  GOTO NLEV                    ; Обработчик RDROP
…
1855 ;#RDROP
1856 ; RDROP            ( −− )                               Удалить верхний адрес со стека возвратов.
1857 LLEV:           .DB     5
1858                 .TEXT   "RDROP"
1859                 .DW     LK
1860 LEV:            .DW     JLEV

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

CODE1 RDROP ( -> )
     POP EBX
     LEA ESP, 4 [ESP]
     JMP EBX
;C
CODE C-RDROP
     ADD  ESP, # 4
     RET
END-CODE
…
: RDROP  ['] C-RDROP INLINE, ;   IMMEDIATE
: RDROP
  ?COMP
  S" C-RDROP" TC-FINDOUT INLINE, ;   IMMEDIATE

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

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

RDROP    *   K->СНЯТЬ ЗНАЧЕНИЕ СО СТЕКА ВОЗВРАТОВ                9

                      Экран номер 9
( 31.03.86   DUP ?DUP DROP SWAP OVER >R R> R@ RDROP ROT )

CODE RDROP ( -> )  RRET RTWO AR,   RNEXT BR, END-CODE

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

            HEAD     203Q,'LE',326Q,LEV                   ; LEV
            ADD  BP, 2
            NEXT

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


  Nopictures-icon.png У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


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