⟨MARK
<MARK (отметить) — фортовское слово Каллисто. Запомнить адрес для перехода назад.
<MARK ( −− a ) Отметить текущий адрес для ссылки назад.
Слово <MARK кладёт на стек текущий адрес вершины словаря. Позже слово <RESOLVE создаст в шитом коде ссылку на этот адрес, сняв его со стека.
Обычно <MARK и <RESOLVE используются в паре для компиляции адреса переходов назад: BRANCH и ?BRANCH.
Ввод слова <MARK[править]
В режиме NUM последовательно нажмите клавиши F ШГ→ Р-ГРД-Г ÷ ШГ← × 9
Для возврата в режим NUM нажмите синюю клавишу P .
<MARK в предыдущем стандарте Forth-83 (англ.)[править]
<MARK -- addr C,83 "backward-mark" Used at the destination of a backward branch. addr is typically only used by <RESOLVE to compile a branch address.
Реализация[править]
2309 JHERE: PPRM rrDP RME ∗ PPRM rlDP + KM3 ; Выдать адрес первой свободной ячейки в словаре. 2310 KGOTO9 … 3646 ;#BkwMARK 3647 ; <MARK ( −− a ) Отметить текущий адрес для ссылки назад. 3648 LLMARK: .DB 5 3649 .TEXT "<MARK" 3650 .DW LGRESOLVE 3651 LMARK: .DW JHERE
Реализация в SP-Forth 4.20[править]
: <MARK ( -> A ) HERE ;
Советская реализация[править]
Описание и определение слова <MARK в ядре ФОРТ-ЕС:
<MARK К ->А ОТМЕТИТЬ ТЕКУЩИЙ АДРЕС ДЛЯ ССЫЛКИ НАЗАД 19 Экран номер 19 ( 31.03.86 СРАВНЕНИЯ И РАЗРЕШЕНИЯ В ШИТОМ КОДЕ) : <MARK (->A) HERE ;
Ссылки[править]
- Исходный текст слова <MARK в Каллисто Классик 1.0
- См. слова >MARK, >RESOLVE и <RESOLVE
- См. также слова BRANCH и ?BRANCH
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |