ALLOT: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) (→Ссылки) |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 3: | Строка 3: | ||
Добавляет n байт к полю параметров слова, описанного последним. | Добавляет n байт к полю параметров слова, описанного последним. | ||
Оператор N ALLOT резервирует в словаре N байт. | Оператор N '''ALLOT''' резервирует в словаре N байт. | ||
== Ввод слова ALLOT == | == Ввод слова ALLOT == | ||
Строка 46: | Строка 46: | ||
== Реализация == | == Реализация == | ||
Определение слова ALLOT в ядре ФОРТ-ЕС: | Определение слова '''ALLOT''' в ядре ФОРТ-ЕС: | ||
<PRE> | <PRE> | ||
ALLOT W-> СМЕСТИТЬ ВЕРШИНУ СЛОВАРЯ НА W БАЙТОВ 10 | ALLOT W-> СМЕСТИТЬ ВЕРШИНУ СЛОВАРЯ НА W БАЙТОВ 10 | ||
Строка 55: | Строка 55: | ||
CODE ALLOT ( N-> ) RD FIRST AH, POP B, END-CODE | CODE ALLOT ( N-> ) RD FIRST AH, POP B, END-CODE | ||
</PRE> | </PRE> | ||
В FORTH ИТЭФ слово ALLOT также было [[примитив]]ом, вот его определение: | В FORTH ИТЭФ слово '''ALLOT''' также было [[примитив]]ом, вот его определение: | ||
<PRE> | <PRE> | ||
HEAD 205Q,'ALLO',3240,ALLOT ; ALLOT | HEAD 205Q,'ALLO',3240,ALLOT ; ALLOT | ||
Строка 64: | Строка 64: | ||
== Ссылки == | == Ссылки == | ||
* См. слова [[HERE]] и [[Слово H|H]] | * См. слова [[HERE]] и [[Слово H|H]], а также слово [[ДALLOT]] | ||
* Слово [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://forth-standard.org/standard/core/ALLOT ALLOT] в черновике Forth 200x ''(англ.)'' | * Слово [http://forth-standard.org/standard/core/ALLOT ALLOT] в черновике Forth 200x ''(англ.)'' |
Версия от 00:42, 8 мая 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
Ссылки
- См. слова HERE и H, а также слово ДALLOT
- Слово ALLOT в стандарте ANS Forth (англ.)
- Слово ALLOT в черновике Forth 200x (англ.)
- ФУНКЦИОНИРОВАНИЕ ФОРТ-СИСТЕМЫ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- Variables, Constants, and Arrays в книге Leo Brodie Starting Forth (англ.)
- Under the Hood в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |