RP@

Материал из ПМК вики
Версия от 17:13, 10 ноября 2017; AtH (обсуждение | вклад) (→‎Реализация)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

RP@ (считать RP, читается «ар-пи извлечь») — фортовское слово Каллисто.

RP@            ( −− a )                             Считать RP. Адрес текущей вершины стека возвратов.

Адрес текущей вершины стека возвратов.

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

В режиме ЛАТ последовательно нажмите четыре клавиши  ×   6     P   ИП 

Эти нажатия оставляют клавиатуру в режиме NUM.

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

1738 SPAT0:          1 EE 4 + KM3  KGOTO9
…
1749 ;               ∗∗ Стек возвратов ∗∗
1750 ;
1751 ;#RPFetch
1752 ; RP@              ( −− a )                             Считать RP. Адрес текущей вершины стека возвратов.
1753 LRPAT:          .DB     3
1754                 .TEXT   "RP@"
1755                 .DW     LSPSTO
1756 RPAT:           .DW     JRPAT
1757 JRPAT:          RM2  GOTO SPAT0

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

CODE RP@ ( -- RP )
     LEA EBP, -4 [EBP]
     MOV [EBP], EAX
     LEA EAX, 4 [ESP]
     RET
END-CODE

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

Слово RP@ взято в Каллисто из ФОРТ-ЕС, где также было примитивом. Вот его описание и определение в ФОРТ-ЕС:

RP@      *   ->A АДРЕС ТЕКУЩЕЙ ВЕРШИНЫ-СТЕКА ВОЗВРАТОВ          20

                     Экран номер 20
( 31.03.86    SP@ SP! RP@ RP! 2/ 2* 2@ 2! DEPTH )

CODE RP@ ( ->A) RW1 RRET LR, RW1 RFORTH SR, PUSHRW1 B, END-CODE

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


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


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