⟨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
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |