S0
S0 (читается «эс-нуль») — фортовская переменная Каллисто.
S0 ( −− a ) Переменная, адрес дна стека данных.
Переменная S0 содержит адрес дна стека данных.
Ввод слова S0[править]
В режиме ЛАТ последовательно нажмите три клавиши 1 P 0
Эти нажатия оставляют клавиатуру в режиме NUM.
Маленькие хитрости[править]
Программист может переустановить дно десятичного стека, зарезервировав для себя некоторое количество десятичных регистров с фиксированными номерами от R999 и ниже. Эти регистры не будут использоваться Каллисто. Не забудьте переинициализировать SP после изменения переменной S0.
Если вам не важно знать заранее номера десятичных регистров, для их резервирования проще использовать встроенное слово ДALLOT.
История[править]
Как и в Каллисто, в Форте-83 и fig-Форте S0 является переменной, содержащей адрес дна стека. В Форте-79 S0 является константой, засылающей в стек адрес дна стека.
Итого S0 Форта-79 эквивалентно S0 @ Каллисто и fig-Форта.
S0 была убрана из действующего стандарта ANS Forth и её нет в черновиках стандарта Форт-2012.
S0 в предыдущем стандарте Forth-83 (англ.)[править]
S0 -- addr U "s-zero" A variable containing the address of the bottom of the stack.
S0 в стандарте Forth-79 (англ.)[править]
S0 -- addr "s-zero" Returns the address of the bottom of the stack, when empty.
S0 в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]
S0 --- addr U A user variable that contains the initial value for the stack pointer. Pronounced S-zero. See SP! The computation stack grows downward from the terminal buffer toward the dictionary which grows upward. The origin of the stack is is in variable S0 (S-zero) and is loaded from a boot-up literal.
Реализация[править]
136 rrS0 .EQU 1131 ; 11131 S0 − Указатель начала стека параметров 137 rlS0 .EQU 1132 138 pS0 .EQU 131 … 2748 ; ∗∗ USER−переменные ∗∗ 2749 ; 2750 ;#SZero 2751 ; S0 ( −− a ) Переменная, адрес дна стека данных. 2752 LSZERO: .DB 2 2753 .TEXT "S0" 2754 .DW LATR 2755 SZERO: .DW SUSE 2756 .DB pS0
Реализация в SP-Forth 4.20[править]
USER S0 \ адрес дна стека данных
Советская реализация[править]
Описание и определение переменной S0 в ядре ФОРТ-ЕС:
S0 +П->А ПЕРЕМЕННАЯ - АДРЕС ДНА СТЕКА ДАННЫХ 7 Экран номер 7 ( 09.09.86 КОНСТАНТЫ И СИСТЕМНЫЕ ПЕРЕМЕННЫЕ ) VARIABLE S0 ( АДРЕС ДНА СТЕКА ДАННЫХ)
Определение переменной S0 в FORTH ИТЭФ:
** USER-переменные ** HEAD 202Q,'S',260Q,SZERO,$USE ; S0 DW 6 ... STACK SEGMENT STACK ; Стек параметров DW 64 DUP (?) XS0 LABEL WORD DW 0,0 ; STACK STACK ENDS
Ссылки[править]
- Исходный текст слова S0 в Каллисто Классик 1.0
- См. слова !SP и SP@
- Stack register в английской Википедии (англ.)
- ФУНКЦИОНИРОВАНИЕ ФОРТ-СИСТЕМЫ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- Under the Hood в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |