HERE: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) |
AtH (обсуждение | вклад) |
||
Строка 73: | Строка 73: | ||
PUSH [DI]+22Q | PUSH [DI]+22Q | ||
NEXT | NEXT | ||
</PRE> | |||
=== colorForth (cf2019.nasm 2019 Sep 14) === | |||
<PRE> | |||
here: | |||
_DUP_ | |||
mov _TOS_, [v_H] | |||
ret | |||
</PRE> | </PRE> | ||
Текущая версия от 14:57, 30 июня 2021
HERE (здесь) — стандартное слово Каллисто.
HERE ( −− a ) Здесь. Дать адрес текущей вершины словаря.
Выдаёт адрес первой свободной ячейки в словаре.
Ввод слова HERE[править]
В режиме ЛАТ последовательно нажмите четыре клавиши ПП ИП × ИП
HERE в стандарте ANS Forth[править]
6.1.1650 HERE CORE ( -- addr ) addr - указатель области данных. См.: 3.3.3.2 Непрерывные области.
История[править]
Слово HERE взято из Форта, где оно входит во все стандарты, включая fig-Форт, и не менялось с 1979 года.
HERE в предыдущем стандарте Forth-83 (англ.)[править]
HERE -- addr 79 The address of the next available dictionary location.
HERE в стандарте Forth-79 (англ.)[править]
HERE -- addr 188 Return the address of the next available dictionary location.
HERE в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]
HERE --- addr L0 Leave the address of the next available dictionary location.
Реализация[править]
145 rrDP .EQU 1137 ; 11137 H − Указатель на первую свободную ячейку словаря H @ = HERE 146 pDP .EQU 137 147 rlDP .EQU 1138 … 2303 ;#HERE 2304 ; HERE ( −− a ) Здесь. Дать адрес текущей вершины словаря. 2305 LHERE: .DB 4 2306 .TEXT "HERE" 2307 .DW LSCSP 2308 HERE: .DW JHERE 2309 JHERE: PPRM rrDP RME ∗ PPRM rlDP + KM3 ; Выдать адрес первой свободной ячейки в словаре. 2310 KGOTO9
В 9-й главе Starting FORTH (англ.) слово HERE определяется так:
: HERE H @ ;
Реализация в SP-Forth 4.20[править]
: HERE ( -- addr ) \ 94 \ addr - указатель пространства данных. DP @ DUP TO :-SET DUP TO J-SET ;
Советская реализация[править]
В ФОРТ-ЕС и FORTH ИТЭФ слово HERE было примитивом. Вот его описание и определение из ядра ФОРТ-ЕС:
HERE ->A ДАТЬ АДРЕС ТЕКУЩЕЙ ВЕРШИНЫ СЛОВАРЯ 10 Экран номер 10 ( 31.03.86 HERE ALLOT ALIGN ALIGNH DP! ) CODE HERE ( ->A ) RW1 RD LR, PUSHRW1 B, END-CODE
Вот его определение из FORTH ИТЭФ:
HEAD 204Q,'HER',305Q,HERE ; HERE PUSH [DI]+22Q NEXT
colorForth (cf2019.nasm 2019 Sep 14)[править]
here: _DUP_ mov _TOS_, [v_H] ret
Ссылки[править]
- Исходный текст слова HERE в Каллисто Классик 1.0
- См. слова H и ALLOT, а также слово ДHERE
- Слово HERE в стандарте ANS Forth (англ.)
- Слово HERE в черновике Forth 200x (англ.)
- ФУНКЦИОНИРОВАНИЕ ФОРТ-СИСТЕМЫ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- Under the Hood в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |