Редактирование: ENCLOSE

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 17: Строка 17:


== Реализация ==
== Реализация ==
<pre>
930 ;#ENCLOSE
931 ; ENCLOSE          ( a1 c −− a2 u1 u2 )                Окружить. Выделить лексему с адреса a1 и ограничительной литерой c.
932 ;              ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
933 ; Делает смелое предположение, что дело происходит не в памяти программ
934 LENCL:          .DB    7
935                .TEXT  "ENCLOSE"              ; ENCLOSE  ( a1 c −− a2 len da )
936                .DW    LGREAT
937 ENCL:          .DW    JENCL
938 JENCL:          RM3 MA 1 + MB
939                KRMA M0                        ; R0 Разделитель
940                KRMB 1 EE 4 − M8 M5            ; R5 Начальный адрес
941 A:              Cx KRM8 RM0 −                  ; Обход разделителей в начале
942                FX=0 NOTEQ
943 AAA:            RM8 1 + M8  GOTO A
944 NOTEQ:          RM0 32 −  FX=0 ENCLNSP          ; Только если пробел, проверить другие литеры
945                KRM8 9 −  FX!=0 AAA            ;  9 TAB
946                1 −  FX!=0 AAA                  ; 10 LF
947                3 −  FX!=0 AAA                  ; 13 CR
948 ENCLNSP:        Cx EE 4 RM8 M7 + KMB            ; Начало лексемы
949                RM0 32 −  FX!=0 AASP
950 AA:            Cx KRM8  PX!=0 ZZZ              ; Если нуль
951                RM0 −  PX!=0 EQW
952                RM8 1 + M8  GOTO AA
953 AASP0:          RM8 1 + M8
954 AASP:          Cx KRM8  PX!=0 ZZZ              ; Если нуль
955                32 −  PX!=0 EQW                ; 32 пробел
956                FX<0 AASP0                      ; Пропустить всё, что больше пробела
957                23 +  FX!=0 EQW                ;  9 TAB
958                1 −  FX!=0 EQW                  ; 10 LF
959                3 −  PX=0 AASP0                ; 13 CR
960 EQW:            RM8 RM7 − KMA
961                RM8 1 + RM5 − KM3
962                KGOTO9
963 ZZZ:            RM8 RM7 −  FX=0 EQW0
964                EE                              ; 0 −> 1
965 EQW0:          KMA
966                RM8 RM5 − KM3
967                KGOTO9
</pre>
=== Советская реализация ===
Слово ENCLOSE в ФОРТ-ЕС было [[примитив]]ом. Вот его описание и определение:
Слово ENCLOSE в ФОРТ-ЕС было [[примитив]]ом. Вот его описание и определение:
<PRE>
<PRE>
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)