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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Строка 13: Строка 13:


== История ==
== История ==
Слово ERASE пришло в [[Каллисто]] из Форта, где оно является древним и стабильным. В существующем виде слово ERASE входит во все стандарты и известно с 1979 года.
Слово ERASE пришло в [[Каллисто]] из Форта, где оно является древним и стабильным. В существующем виде слово ERASE известно с 1979 года и входит во все стандарты.


=== ERASE в предыдущем стандарте Forth-83 (англ.) ===
=== ERASE в предыдущем стандарте Forth-83 (англ.) ===

Версия от 00:52, 6 июня 2016

ERASE (стереть) — стандартное слово Каллисто. Обнулить массив.

ERASE          ( a u −− )                           Стереть. Записать u нулей в память, начиная с адреса a.

Слово ERASE записывает u нулевых байтов в память, начиная с адреса a.

Ввод слова ERASE

В режиме ЛАТ последовательно нажмите клавиши  ИП   ×   ШГ←   1   ИП 

ERASE в стандарте ANS Forth

6.2.1350   ERASE                                                       CORE EXT
           ( addr u -- )
           Если u больше нуля, очистить все биты в каждом из u 
           последовательных адресуемых элементов памяти, начинающихся с addr.

История

Слово ERASE пришло в Каллисто из Форта, где оно является древним и стабильным. В существующем виде слово ERASE известно с 1979 года и входит во все стандарты.

ERASE в предыдущем стандарте Forth-83 (англ.)

     ERASE        addr u --                     79
          u bytes of memory beginning at addr are set to zero.  No
          action is taken if u is zero.

ERASE в стандарте Forth-79 (англ.)

ERASE          addr n --                     182
    Fill  an area of memory over n bytes with zeros,  starting  at
    addr.  If n is zero or less, take no action.

ERASE в fig-FORTH Release 1 glossary, май 1979 (англ.)

ERASE addr n --
       Clear a region of memory to zero from addr over n addresses.

Реализация

Юрий Семёнов приводит (стр. 26) следующее определение ERASE через более общее слово FILL:

: ERASE   0 FILL ;

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

ERASE    + A,U-> ЗАСЛАТЬ НУЛИ В U БАЙТОВ ПО АДРЕСУ А            22

                     Экран номер 22
( 31.03.86   FILL ERASE BLANK COMPILE [ ] MIN MAX HEX DECIMAL)

: ERASE  ( A,U-> ) 0 FILL ;

В FORTH ИТЭФ слово ERASE было примитивом, код которого использовал код примитива FILL, вот их определения:

            HEAD     204Q,'FIL',314Q,FILL                 ; FILL
            POP  AX      ; Символ
   FLL:     POP  CX      ; Счетчик символов
            CMP  CX, 0
            JLE  DRP     ;
            POP  BX
   $REPE:   MOV  BYTE PTR [BX],  AL
            INC  BX

            LOOP $REPE
            NEXT

            HEAD     205Q,'ERAS',305Q,ERASE               ; ERASE
            SUB  AX, AX
            JMP  FLL

Ссылки


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


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