C,: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) (→Ссылки) |
AtH (обсуждение | вклад) |
||
(не показано 13 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
'''C,''' (байт | '''C,''' (байт компилировать, читается «си-запятая») — стандартное слово [[Каллисто]]. | ||
C, ( b −− ) Скомпилировать b в первый свободный байт словаря. | |||
Компилирует байт | Компилирует байт b в [[HERE|очередной свободный байт]] [[Словарь|словаря]]. | ||
== Ввод слова C, == | == Ввод слова C, == | ||
Строка 9: | Строка 9: | ||
== C, в стандарте ANS Forth == | == C, в стандарте ANS Forth == | ||
<PRE> | |||
6.1.0860 C, "c-comma" CORE | 6.1.0860 C, "c-comma" CORE | ||
( char -- ) | ( char -- ) | ||
Строка 19: | Строка 20: | ||
См.: 3.3.3 Область данных, 3.3.3.1 Выравнивание адреса. | См.: 3.3.3 Область данных, 3.3.3.1 Выравнивание адреса. | ||
</PRE> | |||
== C, в предыдущем стандарте Forth-83 (англ.) == | == История == | ||
=== C, в предыдущем стандарте Forth-83 (англ.) === | |||
C, 16b -- 83 "c-comma" | C, 16b -- 83 "c-comma" | ||
ALLOT one byte then store the least-significant 8 bits of | ALLOT one byte then store the least-significant 8 bits of | ||
16b at HERE 1- . | 16b at HERE 1- . | ||
== C, в стандарте Forth-79 (англ.) == | === C, в стандарте Forth-79 (англ.) === | ||
C, n -- "c-comma" | C, n -- "c-comma" | ||
Store the low-order 8 bits of n at the next byte in the | Store the low-order 8 bits of n at the next byte in the | ||
dictionary, advancing the dictionary pointer. | dictionary, advancing the dictionary pointer. | ||
== C, в fig-FORTH Release 1 glossary, май 1979 (англ.) == | === C, в fig-FORTH Release 1 glossary, май 1979 (англ.) === | ||
C, b --- | C, b --- | ||
Store 8 bits of b into the next available dictionary byte, advancing | Store 8 bits of b into the next available dictionary byte, advancing | ||
Строка 36: | Строка 39: | ||
computers, and should be used with caution on byte addressing mini- | computers, and should be used with caution on byte addressing mini- | ||
computers. | computers. | ||
== Реализация == | |||
<pre> | |||
2946 ;#CComma | |||
2947 ; C, ( b −− ) Скомпилировать b в первый свободный байт словаря. | |||
2948 LCCOM: .DB 2 | |||
2949 .TEXT "C," ; ( c −− ) | |||
2950 .DW LCOMMA | |||
2951 CCOM: .DW CALL, HERE,CSTOR, ONE,ALLOT, EXIT ; Скомпилировать байт c в очередной свободный байт словаря. | |||
</pre> | |||
Реализация из SP-Forth 4.20: | |||
<pre> | |||
: C, ( char -- ) \ 94 | |||
\ Зарезервировать место для символа в области данных и поместить туда char. | |||
DP @ 1 CHARS ALLOT C! | |||
; | |||
</pre> | |||
=== Советская реализация === | |||
Описание и определение слова C, в ядре ФОРТ-ЕС: | |||
<PRE> | |||
C, + С-> СКОМПИЛИРОВАТЬ БАЙТ С НА ВЕРШИНУ СЛОВАРЯ 11 | |||
Экран номер 11 | |||
( 31.03.86 ! 0! @ С! С@ , С, EXECUTE ) | |||
: C, ( C-> ) HERE 1 ALLOT C! ; | |||
</PRE> | |||
Определение слова C, в FORTH ИТЭФ: | |||
<PRE> | |||
HEAD 202Q,'C',254Q,CCOM,$COL ; C, | |||
DW HERE,CSTOR,ONE,ALLOT,SEMI | |||
</PRE> | |||
=== colorForth (cf2019.nasm 2019 Sep 14) === | |||
<PRE> | |||
dcomma: ; c, performed n times ( n in ecx ) | |||
mov edx, [ v_H ] | |||
mov [edx], _TOS_ | |||
mov _TOS_, [ esi ] | |||
lea edx, [ ecx + edx ] | |||
lea esi, [ esi + 0x04 ] | |||
mov [ v_H ], edx | |||
ret | |||
comma1_: ; 1 byte c, | |||
mov ecx, 0x01 | |||
jmp short dcomma | |||
</PRE> | |||
== Ссылки == | == Ссылки == | ||
* {{Исходник|CComma|C,}} | |||
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0860 C, (c-comma)] в стандарте ANS Forth ''(англ.)'' | * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0860 C, (c-comma)] в стандарте ANS Forth ''(англ.)'' | ||
* Слово [http:// | * Слово [http://forth-standard.org/standard/core/CComma C, (c-comma)] в черновике Forth 200x ''(англ.)'' | ||
* [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] ''(англ.)'' | ||
Строка 48: | Строка 101: | ||
[[Категория:Слова высокого уровня]] | [[Категория:Слова высокого уровня]] | ||
[[Категория:Работа со словарём Каллисто]] | [[Категория:Работа со словарём Каллисто]] | ||
[[Категория: | [[Категория:Стандартные слова]] | ||
[[Категория:1994 CORE]] | |||
[[Категория:2012 CORE]] |
Текущая версия от 15:09, 30 июня 2021
C, (байт компилировать, читается «си-запятая») — стандартное слово Каллисто.
C, ( b −− ) Скомпилировать b в первый свободный байт словаря.
Компилирует байт b в очередной свободный байт словаря.
Ввод слова C,[править]
В режиме ЛАТ последовательно нажмите три клавиши С/П P ,
Эти нажатия оставляют клавиатуру в режиме NUM.
C, в стандарте ANS Forth[править]
6.1.0860 C, "c-comma" CORE ( char -- ) Резервирует пространство для одного символа в области данных и запоминает char в нем. Если указатель области данных - выровнен на символ перед выполнением C,, он останется выровненным на символ и после окончания выполнения C,. Неопределенная ситуация существует, если указатель области данных - не выровненный на символ до выполнения C,. См.: 3.3.3 Область данных, 3.3.3.1 Выравнивание адреса.
История[править]
C, в предыдущем стандарте Forth-83 (англ.)[править]
C, 16b -- 83 "c-comma" ALLOT one byte then store the least-significant 8 bits of 16b at HERE 1- .
C, в стандарте Forth-79 (англ.)[править]
C, n -- "c-comma" Store the low-order 8 bits of n at the next byte in the dictionary, advancing the dictionary pointer.
C, в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]
C, b --- Store 8 bits of b into the next available dictionary byte, advancing the dictionary pointer. This is only available on byte addressing computers, and should be used with caution on byte addressing mini- computers.
Реализация[править]
2946 ;#CComma 2947 ; C, ( b −− ) Скомпилировать b в первый свободный байт словаря. 2948 LCCOM: .DB 2 2949 .TEXT "C," ; ( c −− ) 2950 .DW LCOMMA 2951 CCOM: .DW CALL, HERE,CSTOR, ONE,ALLOT, EXIT ; Скомпилировать байт c в очередной свободный байт словаря.
Реализация из SP-Forth 4.20:
: C, ( char -- ) \ 94 \ Зарезервировать место для символа в области данных и поместить туда char. DP @ 1 CHARS ALLOT C! ;
Советская реализация[править]
Описание и определение слова C, в ядре ФОРТ-ЕС:
C, + С-> СКОМПИЛИРОВАТЬ БАЙТ С НА ВЕРШИНУ СЛОВАРЯ 11 Экран номер 11 ( 31.03.86 ! 0! @ С! С@ , С, EXECUTE ) : C, ( C-> ) HERE 1 ALLOT C! ;
Определение слова C, в FORTH ИТЭФ:
HEAD 202Q,'C',254Q,CCOM,$COL ; C, DW HERE,CSTOR,ONE,ALLOT,SEMI
colorForth (cf2019.nasm 2019 Sep 14)[править]
dcomma: ; c, performed n times ( n in ecx ) mov edx, [ v_H ] mov [edx], _TOS_ mov _TOS_, [ esi ] lea edx, [ ecx + edx ] lea esi, [ esi + 0x04 ] mov [ v_H ], edx ret comma1_: ; 1 byte c, mov ecx, 0x01 jmp short dcomma
Ссылки[править]
- Исходный текст слова C, в Каллисто Классик 1.0
- Слово C, (c-comma) в стандарте ANS Forth (англ.)
- Слово C, (c-comma) в черновике Forth 200x (англ.)
- Variables, Constants, and Arrays в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |