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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Строка 66: Строка 66:
* См. слова [[HERE]] и [[Слово H|H]]
* См. слова [[HERE]] и [[Слово H|H]]
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0710 ALLOT] в стандарте ANS Forth ''(англ.)''
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0710 ALLOT] в стандарте ANS Forth ''(англ.)''
* Слово [http://www.forth200x.org/documents/html3/core/ALLOT.html ALLOT] в черновике Forth 200x ''(англ.)''
* Слово [http://forth-standard.org/standard/core/ALLOT ALLOT] в черновике Forth 200x ''(англ.)''
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\09.FUNKZIONIROWANIE%20FORT-SISTEMY ФУНКЦИОНИРОВАНИЕ ФОРТ-СИСТЕМЫ] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»]
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\09.FUNKZIONIROWANIE%20FORT-SISTEMY ФУНКЦИОНИРОВАНИЕ ФОРТ-СИСТЕМЫ] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»]
* [http://www.forth.com/starting-forth/sf8/sf8.html Variables, Constants, and Arrays] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''
* [http://www.forth.com/starting-forth/sf8/sf8.html Variables, Constants, and Arrays] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''

Версия от 09:42, 29 марта 2016

ALLOT (распределить, занять) — стандартное слово Каллисто.

Добавляет n байт к полю параметров слова, описанного последним.

Оператор N ALLOT резервирует в словаре N байт.

Ввод слова ALLOT

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

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

6.1.0710   ALLOT                                                           CORE
           ( n -- )
           Если n больше нуля, резервирует n адресуемых элементов области 
           данных. Если n меньше нуля, освобождает | n | адресуемых элементов 
           области данных. Если n нуль, оставляет указатель области данных 
           неизменным.
           Если указатель области данных выровнен, и n - кратно размеру ячейки 
           перед выполнением ALLOT, он останется выровненным, и после 
           завершения выполнения ALLOT.
           Если указатель области данных выровнен на символ, и n - кратно 
           размеру символа перед выполнением ALLOT, он останется выровненным 
           на символ, и после завершения выполнения ALLOT.
       См.: 3.3.3 Область данных.

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

     ALLOT        w --                          79
          Allocates w bytes in the dictionary.  The address of the
          next available dictionary entry is updated accordingly.

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

ALLOT          n --                          154
    Add  n  bytes  to the parameter field  of  the  most  recently
    defined word.

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

ALLOT         n  ---                           L0
       Add the signed number to the dictionary pointer DP. May be used to
       reserve dictionary space or re-origin memory. n is with regard to
       computer address type (byte or word).

История

N для советских ЭВМ типа ДВК или СМ должно было быть чётным.

Реализация

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

ALLOT     W-> СМЕСТИТЬ ВЕРШИНУ СЛОВАРЯ НА W БАЙТОВ              10

                     Экран номер 10
( 31.03.86       HERE ALLOT ALIGN ALIGNH DP! )

CODE ALLOT  ( N-> ) RD FIRST AH,   POP B,   END-CODE

В FORTH ИТЭФ слово ALLOT также было примитивом, вот его определение:

            HEAD     205Q,'ALLO',3240,ALLOT               ; ALLOT
            POP  BX
            ADD  [DI]+22Q,BX
            NEXT

Ссылки


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


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