Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте или
создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Правка может быть отменена.
Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия |
Ваш текст |
Строка 48: |
Строка 48: |
|
| |
|
| == Реализация == | | == Реализация == |
| <pre>
| |
| 145 rrDP .EQU 1137 ; 11137 H − Указатель на первую свободную ячейку словаря H @ = HERE
| |
| 146 pDP .EQU 137
| |
| 147 rlDP .EQU 1138
| |
| …
| |
| 2312 ;#ALLOT
| |
| 2313 ; ALLOT ( D −− ) Занять. Сместить вершину словаря на n байт.
| |
| 2314 LALLOT: .DB 5
| |
| 2315 .TEXT "ALLOT" ; ( n −− )
| |
| 2316 .DW LHERE
| |
| 2317 ALLOT: .DW JALLOT ; Добавить D байт к полю параметров слова, описанного последним.
| |
| 2318 JALLOT: RM3 MA 1 + M3
| |
| 2319 PPRM rlDP KRMA +
| |
| 2320 ENT RME / FANS <−> KINT MA ∗ − PPM rlDP
| |
| 2321 RMA KX!=09
| |
| 2322 PPRM rrDP + PPM rrDP
| |
| 2323 KGOTO9
| |
| </pre>
| |
|
| |
| === Реализация в SP-Forth 4.20 ===
| |
| <pre>
| |
| : ALLOT ( n -- ) \ 94
| |
| \ Если n больше нуля, зарезервировать n байт пространства данных. Если n меньше
| |
| \ нуля - освободить |n| байт пространства данных. Если n ноль, оставить
| |
| \ указатель пространства данных неизменным.
| |
| \ Если перед выполнением ALLOT указатель пространства данных выровнен и n
| |
| \ кратно размеру ячейки, он остается выровненным и после ALLOT.
| |
| \ Если перед выполнением ALLOT указатель пространства данных выровнен на
| |
| \ границу символа и n кратно размеру символа, он остается выровненным на
| |
| \ границу символа и после ALLOT.
| |
| DP +!
| |
| ;
| |
| </pre>
| |
|
| |
| === Советская реализация ===
| |
| Определение слова '''ALLOT''' в ядре ФОРТ-ЕС: | | Определение слова '''ALLOT''' в ядре ФОРТ-ЕС: |
| <PRE> | | <PRE> |