Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
| '''R>''' (со стека возвратов, «с ар») — стандартное слово [[Каллисто]]. | | '''R>''' — стандартное слово [[Каллисто]]. |
| R> ( −− D ) Перемещает D из стека возвратов на стек данных.
| |
| Переносит 16-битное число D из [[Стек возвратов Каллисто|стека возвратов]] в [[Стек данных|стек данных]].
| |
|
| |
|
| == Ввод слова R> ==
| | Переносит 16-битное число из [[Стек возвратов Каллисто|стека возвратов]] в [[Стек данных|стек данных]]. |
| В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите четыре клавиши [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша P|{{Синяя клавиша|P}}]] [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]]
| |
|
| |
|
| Эти нажатия оставляют клавиатуру в [[Режим NUM|режиме NUM]].
| |
|
| |
| == Маленькие хитрости ==
| |
| Для чтения беззнакового значения со [[Стек возвратов Каллисто|стека возвратов]] используйте фразу [[I]] [[RDROP]]
| |
|
| |
|
| == R> в стандарте ANS Forth == | | == R> в стандарте ANS Forth == |
| <PRE>
| |
| 6.1.2060 R> "r-from" CORE | | 6.1.2060 R> "r-from" CORE |
| Интерпретация: Семантика интерпретации для этого слова не определена. | | Интерпретация: Семантика интерпретации для этого слова не определена. |
Строка 21: |
Строка 13: |
| См.: 3.2.3.3 Стек возвратов, 6.1.0580 >R, 6.1.2070 R@, 6.2.0340 2>R, | | См.: 3.2.3.3 Стек возвратов, 6.1.0580 >R, 6.1.2070 R@, 6.2.0340 2>R, |
| 6.2.0410 2R>, 6.2.0415 2R@. | | 6.2.0410 2R>, 6.2.0415 2R@. |
| </PRE>
| |
|
| |
|
| == История ==
| | |
| === R> в предыдущем стандарте Forth-83 (англ.) ===
| | == R> в предыдущем стандарте Forth-83 (англ.) == |
| R> -- 16b C,79 "r-from" | | R> -- 16b C,79 "r-from" |
| 16b is removed from the return stack and transferred to the | | 16b is removed from the return stack and transferred to the |
| data stack. See: "9.3 Return Stack" | | data stack. See: "9.3 Return Stack" |
|
| |
|
| === R> в стандарте Forth-79 (англ.) ===
| | |
| | == R> в стандарте Forth-79 (англ.) == |
| R> -- n C,110 "r-from" | | R> -- n C,110 "r-from" |
| Transfer n from the return stack to the data stack. | | Transfer n from the return stack to the data stack. |
|
| |
|
| === R> в fig-FORTH Release 1 glossary, май 1979 (англ.) ===
| |
| R> --- n L0
| |
| Remove the top value from the return stack and leave it on the
| |
| computation stack. See >R and R.
| |
|
| |
| == Реализация ==
| |
| <pre>
| |
| 1807 ;#Rfrom
| |
| 1808 ; R> ( −− D ) Переместить D из стека возвратов на стек данных.
| |
| 1809 LFROMR: .DB 2
| |
| 1810 .TEXT "R>" ; ( −− n ) ( R: n −− )
| |
| 1811 .DW LTOR
| |
| 1812 FROMR: .DW JFROMR ; Перенести 16−битное целое со знаком из стека возвратов на стек данных.
| |
| 1813 JFROMR: RM2 MA M5 2 + M2
| |
| 1814 JFR2: KRMA RME ∗ KRM5 + M0
| |
| 1815 32768 −
| |
| 1816 FX>=0 FROMR1
| |
| 1817 FANS − KM3 KGOTO9
| |
| 1818 FROMR1: RM0 KM3 KGOTO9
| |
| </pre>
| |
| Реализации из SP-Forth 4.20:
| |
| <pre>
| |
| CODE1 R> \ 94
| |
| \ Исполнение: ( -- x ) ( R: x -- )
| |
| \ Перенести x со стека возвратов на стек данных.
| |
| \ Интерпретация: семантика в режиме интерпретации не определена.
| |
| LEA EBP, -4 [EBP]
| |
| MOV [EBP], EAX
| |
| POP EBX
| |
| POP EAX
| |
| JMP EBX
| |
| ;C
| |
| </pre>
| |
| <pre>
| |
| CODE C-R> \ 94
| |
| LEA EBP, -4 [EBP]
| |
| MOV [EBP], EAX
| |
| POP EAX
| |
| RET
| |
| END-CODE
| |
| …
| |
| : R> ['] C-R> INLINE, ; IMMEDIATE
| |
| </pre>
| |
| <pre>
| |
| : R>
| |
| ?COMP
| |
| S" C-R>" TC-FINDOUT INLINE, ; IMMEDIATE
| |
| </pre>
| |
|
| |
| === Советская реализация ===
| |
| Слово R> в ФОРТ-ЕС было [[примитив]]ом. Вот его описание и определение:
| |
| <PRE>
| |
| R> К ->W ПЕРЕНЕСТИ ЗНАЧЕНИЕ СО СТЕКА ВОЗВРАТОВ 9
| |
|
| |
| Экран номер 9
| |
| ( 31.03.86 DUP ?DUP DROP SWAP OVER >R R> R@ RDROP ROT )
| |
|
| |
| CODE R> ( ->W) RW1 RPOP, PUSHRW1 B, END-CODE
| |
| </PRE>
| |
| В FORTH ИТЭФ слово R> также было [[примитив]]ом, вот его определение:
| |
| <PRE>
| |
| HEAD 202Q 'R',276Q,FROMR ; R>
| |
| PUSH [BP]
| |
| ADD BP, 2
| |
| NEXT
| |
| </PRE>
| |
|
| |
|
| == Ссылки == | | == Ссылки == |
| * {{Исходник|Rfrom|R>}} | | * [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2060 Слово R> (r-from) в стандарте ANS Forth] ''(англ.)'' |
| * См. слова [[R@]], [[⟩R|>R]], [[RDROP]], [[UNLOOP]], [[Слово I|I]], [[Слово J|J]] и [[Слово K|K]]
| | * [http://www.forth200x.org/documents/html/core.html#core:Rfrom Слово R> (r-from) в черновике Forth 200x] ''(англ.)'' |
| * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2060 R> (r-from)] в стандарте ANS Forth ''(англ.)''
| |
| * Слово [http://forth-standard.org/standard/core/Rfrom R> (r-from)] в черновике Forth 200x ''(англ.)'' | |
| * [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] ''(англ.)''
| |
|
| |
|
|
| |
|
Строка 112: |
Строка 34: |
| {{заготовка}} | | {{заготовка}} |
| [[Категория:Слова Каллисто]] | | [[Категория:Слова Каллисто]] |
| [[Категория:Примитивы]]
| |
| [[Категория:Операции со стеком возвратов Каллисто]] | | [[Категория:Операции со стеком возвратов Каллисто]] |
| [[Категория:Стандартные слова]]
| |
| [[Категория:1994 CORE]]
| |
| [[Категория:2012 CORE]]
| |