R⟩: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) (→Ссылки) |
AtH (обсуждение | вклад) |
||
(не показано 18 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
'''R>''' ( | '''R>''' (со стека возвратов, «с ар») — стандартное слово [[Каллисто]]. | ||
R> ( −− D ) Перемещает D из стека возвратов на стек данных. | |||
Переносит 16-битное число из [[Стек возвратов Каллисто|стека возвратов]] в [[Стек данных|стек данных]]. | Переносит 16-битное число D из [[Стек возвратов Каллисто|стека возвратов]] в [[Стек данных|стек данных]]. | ||
== Ввод слова R> == | == Ввод слова R> == | ||
Строка 7: | Строка 7: | ||
Эти нажатия оставляют клавиатуру в [[Режим NUM|режиме NUM]]. | Эти нажатия оставляют клавиатуру в [[Режим 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 | ||
Интерпретация: Семантика интерпретации для этого слова не определена. | Интерпретация: Семантика интерпретации для этого слова не определена. | ||
Строка 17: | Строка 21: | ||
См.: 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> в fig-FORTH Release 1 glossary, май 1979 (англ.) === | ||
R> --- n L0 | R> --- n L0 | ||
Remove the top value from the return stack and leave it on the | Remove the top value from the return stack and leave it on the | ||
computation stack. See >R and R. | 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>}} | |||
* См. слова [[R@]], [[⟩R|>R]], [[RDROP]], [[UNLOOP]], [[Слово I|I]], [[Слово J|J]] и [[Слово K|K]] | |||
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2060 R> (r-from)] в стандарте ANS Forth ''(англ.)'' | * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2060 R> (r-from)] в стандарте ANS Forth ''(англ.)'' | ||
* Слово [http:// | * Слово [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://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] ''(англ.)'' | |||
Строка 43: | Строка 114: | ||
[[Категория:Примитивы]] | [[Категория:Примитивы]] | ||
[[Категория:Операции со стеком возвратов Каллисто]] | [[Категория:Операции со стеком возвратов Каллисто]] | ||
[[Категория: | [[Категория:Стандартные слова]] | ||
[[Категория:1994 CORE]] | |||
[[Категория:2012 CORE]] |
Текущая версия от 21:45, 13 ноября 2017
R> (со стека возвратов, «с ар») — стандартное слово Каллисто.
R> ( −− D ) Перемещает D из стека возвратов на стек данных.
Переносит 16-битное число D из стека возвратов в стек данных.
Ввод слова R>[править]
В режиме ЛАТ последовательно нажмите четыре клавиши × P F ИП
Эти нажатия оставляют клавиатуру в режиме NUM.
Маленькие хитрости[править]
Для чтения беззнакового значения со стека возвратов используйте фразу I RDROP
R> в стандарте ANS Forth[править]
6.1.2060 R> "r-from" CORE Интерпретация: Семантика интерпретации для этого слова не определена. Выполнение: ( -- x ) ( R: x -- ) Перемещает x из стека возвратов на стек данных. См.: 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@.
История[править]
R> в предыдущем стандарте Forth-83 (англ.)[править]
R> -- 16b C,79 "r-from" 16b is removed from the return stack and transferred to the data stack. See: "9.3 Return Stack"
R> в стандарте Forth-79 (англ.)[править]
R> -- n C,110 "r-from" 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.
Реализация[править]
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
Реализации из SP-Forth 4.20:
CODE1 R> \ 94 \ Исполнение: ( -- x ) ( R: x -- ) \ Перенести x со стека возвратов на стек данных. \ Интерпретация: семантика в режиме интерпретации не определена. LEA EBP, -4 [EBP] MOV [EBP], EAX POP EBX POP EAX JMP EBX ;C
CODE C-R> \ 94 LEA EBP, -4 [EBP] MOV [EBP], EAX POP EAX RET END-CODE … : R> ['] C-R> INLINE, ; IMMEDIATE
: R> ?COMP S" C-R>" TC-FINDOUT INLINE, ; IMMEDIATE
Советская реализация[править]
Слово R> в ФОРТ-ЕС было примитивом. Вот его описание и определение:
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
В FORTH ИТЭФ слово R> также было примитивом, вот его определение:
HEAD 202Q 'R',276Q,FROMR ; R> PUSH [BP] ADD BP, 2 NEXT
Ссылки[править]
- Исходный текст слова R> в Каллисто Классик 1.0
- См. слова R@, >R, RDROP, UNLOOP, I, J и K
- Слово R> (r-from) в стандарте ANS Forth (англ.)
- Слово R> (r-from) в черновике Forth 200x (англ.)
- ОПЕРАЦИИ НАД ЦЕЛЫМИ ЧИСЛАМИ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- The Philosophy of Fixed Point в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |