HERE: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
 
Строка 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

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


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


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