N⟩LINK: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) |
AtH (обсуждение | вклад) |
||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 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>LINK в ядре ФОРТ-ЕС: | Описание и определение слова N>LINK в ядре ФОРТ-ЕС: | ||
<PRE> | <PRE> | ||
Строка 29: | Строка 48: | ||
== Ссылки == | == Ссылки == | ||
* {{Исходник|NtoLINK|N>LINK}} | * {{Исходник|NtoLINK|N>LINK}} | ||
* См. слова [[⟩BODY|>BODY]], [[BODY⟩|BODY>]], [[NAME⟩|NAME>]] и [[N⟩BODY|N>BODY]] | |||
Строка 35: | Строка 55: | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория:Слова высокого уровня]] | [[Категория:Слова высокого уровня]] | ||
[[Категория: | [[Категория:Преобразования адресов полей]] |
Текущая версия от 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+ ;
Ссылки[править]
- Исходный текст слова N>LINK в Каллисто Классик 1.0
- См. слова >BODY, BODY>, NAME> и N>BODY
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |