N⟩LINK: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показаны 3 промежуточные версии этого же участника)
Строка 1: Строка 1:
'''N>LINK''' (от имени к связи) — фортовское слово [[Каллисто]].
'''N>LINK''' (от имени к связи) — фортовское слово [[Каллисто]].
  N>LINK        ( a1 −− a2 )                        От имени к связи. Преобразовать NFA в LFA.
  N>LINK        ( a1 −− a2 )                        От имени к связи. Преобразовать NFA в LFA.
Слово N>LINK позволяет получить [[LFA|адрес поля связи]] по известному [[NFA|адресу поля имени]].
Слово N>LINK позволяет получить [[LFA|адрес поля связи]] a2 по известному [[NFA|адресу поля имени]] a1.


== Ввод слова N>LINK ==
== Ввод слова N>LINK ==
Строка 17: Строка 17:


== Реализация ==
== Реализация ==
<pre>
2975 ;#NtoLINK
2976 ; N>LINK          ( a1 −− a2 )                        От имени к связи. Преобразовать NFA в LFA.
2977 LNLINK:        .DB    6
2978                .TEXT  "N>LINK"                        ; ( nfa −− lfa )
2979                .DW    LSPACE
2980 NLINK:          .DW CALL, DUP,CAT, BL,MOD, PLUS, ONEP, EXIT ; BL == 32
</pre>
Реализация из SP-Forth 4.20:
<pre>
CODE NAME>L ( NFA -> LFA )
    MOVZX EBX, BYTE [EAX]
    LEA EAX, [EBX] [EAX]
    LEA EAX, 1 [EAX]
    RET
END-CODE
</pre>
=== Советская реализация ===
Описание и определение слова N&gt;LINK в ядре ФОРТ-ЕС:
Описание и определение слова N&gt;LINK в ядре ФОРТ-ЕС:
<PRE>
<PRE>
Строка 29: Строка 48:
== Ссылки ==
== Ссылки ==
* {{Исходник|NtoLINK|N&gt;LINK}}
* {{Исходник|NtoLINK|N&gt;LINK}}
* См. слова [[⟩BODY|&gt;BODY]], [[BODY⟩|BODY&gt;]], [[NAME⟩|NAME&gt;]] и [[N⟩BODY|N&gt;BODY]]





Текущая версия от 00:08, 14 ноября 2017

N>LINK (от имени к связи) — фортовское слово Каллисто.

N>LINK         ( a1 −− a2 )                         От имени к связи. Преобразовать NFA в LFA.

Слово N>LINK позволяет получить адрес поля связи a2 по известному адресу поля имени a1.

Ввод слова N>LINK[править]

В режиме ЛАТ последовательно нажмите клавиши  4     P   F   ИП     Р-ГРД-Г        7   4   9 

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

Слово N>LINK пришло в Каллисто из расширения стандарта Форт−83 — удобного, хотя и необязательного к реализации. Будучи слишком низкоуровневым, оно было исключено из стандарта 1994 года.

Слово из расширения стандарта Форт−83 (необязательное).

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

     N>LINK       addr1 -- addr2                        "name-to-link"
          addr2 is the link field address corresponding to the name
          field address addr1.

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

2975 ;#NtoLINK
2976 ; N>LINK           ( a1 −− a2 )                         От имени к связи. Преобразовать NFA в LFA.
2977 LNLINK:         .DB     6
2978                 .TEXT   "N>LINK"                        ; ( nfa −− lfa )
2979                 .DW     LSPACE
2980 NLINK:          .DW CALL, DUP,CAT, BL,MOD, PLUS, ONEP, EXIT ; BL == 32

Реализация из SP-Forth 4.20:

CODE NAME>L ( NFA -> LFA )
     MOVZX EBX, BYTE [EAX]
     LEA EAX, [EBX] [EAX]
     LEA EAX, 1 [EAX]
     RET
END-CODE

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

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

N>LINK    *  NFA->LFA ПЕРЕЙТИ ОТ ПОЛЯ ИМЕНИ К ПОЛЮ СВЯЗИ        30

                     Экран номер 30
( 31.03.86  >BODY BODY> >LINK LINK> L>NAME N>LINK >NAME NAME> )

: N>LINK  ( NFA->LFA)  DUP С@ 31 AND + 2+ ;

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


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


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