⟨RESOLVE

Материал из ПМК вики
Перейти к навигации Перейти к поиску

<RESOLVE (разрешить) — фортовское слово Каллисто. Скомпилировать адрес перехода назад.

<RESOLVE       ( a −− )                             Разрешить ссылку назад в адрес a.

Слово <RESOLVE компилирует ссылку на точку, адрес которой передан через стек словом <MARK.

Обычно <MARK и <RESOLVE используются в паре для компиляции адреса переходов назад: BRANCH и ?BRANCH.

Ввод слова <RESOLVE[править]

В режиме NUM последовательно нажмите клавиши  F   ШГ→     Р-ГРД-Г   ×   ИП   1   5         ИП 

Для возврата в режим NUM нажмите синюю клавишу  P .

История[править]

<RESOLVE в предыдущем стандарте Forth-83 (англ.)[править]

     <RESOLVE     addr --                      C,83 "backward-resolve"
          Used at the source of a backward branch after either BRANCH
          or ?BRANCH .  Compiles a branch address using addr as the
          destination address.

BACK в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]

BACK      addr --
       Calculate the backward branch offset from HERE to addr and compile
       into the next available dictionary memory address.

Реализация[править]

3653 ;#BkwRESOLVE
3654 ; <RESOLVE         ( a −− )                             Разрешить ссылку назад в адрес a.
3655 LLRESOLVE:      .DB     8
3656                 .TEXT   "<RESOLVE"
3657                 .DW     LLMARK
3658 LRESOLVE:       .DW CALL
3659 RLRESOLVE:      .DW LITP
3660                 .DB 39,17                       ; 10001
3661                 .DW SUB, BRAN,RCOMMA

Советская реализация[править]

Юрий Семёнов приводит следующее определение слова <RESOLVE (стр. 65):

 : <RESOLVE   HERE - , ;    ( компилирует в описание слова адрес воз-
                              врата)

Описание и определение слова <RESOLVE в ядре ФОРТ-ЕС:

  <RESOLVE  К А ->                      РАЗРЕШИТЬ ССЫЛКУ НАЗАД В АДРЕС А  19

                     Экран номер 19
( 31.03.86   СРАВНЕНИЯ И РАЗРЕШЕНИЯ В ШИТОМ КОДЕ)

: <RESOLVE ( A->) , ;

Слово <RESOLVE в FORTH ИТЭФ называется BACK

Вот его определение:

             HEAD    204Q,'BAC',313Q,BACK,$COL            ; BACK
             DW  HERE,SUB,COMMA,SEMI

Ссылки[править]


  Nopictures-icon.png У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


  Stub-icon-48px.png Это заготовка статьи. Вы можете помочь проекту, дополнив её.