ENCLOSE: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 69: | Строка 69: | ||
JMP EQW | JMP EQW | ||
</PRE> | </PRE> | ||
== Ссылки == | |||
* {{Исходник|ENCLOSE|ENCLOSE}} | |||
Версия от 05:13, 3 июня 2016
ENCLOSE (окружить) — стандартное слово Каллисто.
Ввод слова ENCLOSE
В режиме ЛАТ последовательно нажмите клавиши ИП 4 С/П − 5 1 ИП
ENCLOSE в fig-FORTH Release 1 glossary, май 1979 (англ.)
ENCLOSE addr1 c -- addr1 n1 n2 n3 The text scanning primitive used by WORD. From the text address addr1 and an ascii delimiting character c, is determined the byte offset to the first non-delimiter character n1, the offset to the first delimiter after the text n2, and the offset to the first character not included. This proceedure will not process past an ascii 'null', treating it as an unconditional delimiter.
Реализация
Слово ENCLOSE в ФОРТ-ЕС было примитивом. Вот его описание и определение:
ENCLOSE * A,C->A,N1,N2,N3 ВВОД СЛОВА 27 Экран номер 27 ( 31.03.66 ENCLOSE WORD ) CODE ENCLOSE ( A,C->A,N1,N2,N3) 14 LHRW12 BAL, RW1 RMASK NR, RW1 RFORTH AR, 14 14 SR, 0 0 SR, BEGIN, 0 0 (, 14 RW1 IC, 0 0 LTR, 2 =F BZ, 14 1 (, 0 14 LA, 0 RW2 CR, ?NE UNTIL, 14 0 BCTR, 2 =Н 14 PUT, BEGIN, 1 14 LR, 0 0 (, 1 RW1 IC, 0 0 LTR, 2 =F BZ, 14 1 (, 0 14 LA, 0 RW2 CR, ?E UNTIL, 2 =Н 1 PUSH, RW1 14 LR, PUSHRW1 В, END-CODE
В FORTH ИТЭФ слово ENCLOSE называлось ENCL и также было примитивом, вот его определение:
; ****************** HEAD 204Q,'ENC',314Q,ENCL ; ENCLOSE POP AX ; разделитель POP CX ; начальный адрес MOV BX, CX A: CMP BYTE PTR [BX], AL ; обход разделителей в начале JNE NOTEQ AAA: INC BX JMP A NOTEQ: CMP BYTE PTR [BX], 15Q JE AAA CMP BYTE PTR [BX], 12Q JE AAA MOV DX, BX ; начало лексемы PUSH DX AA: CMP BYTE PTR [BX], 0 JE ZZZ ; если нуль CMP BYTE PTR [BX], AL ; не нуль, ищем конец лексемы JE QW INC BX JMP AA EQW: MOV AX, BX SUB BX, DX PUSH BX SUB AX, CX INC AX PUSH AX NEXT ZZZ: CHP BX, DX JNE EQW INC BX JMP EQW
Ссылки
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |