C,: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) (→Ссылки) |
AtH (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 41: | Строка 41: | ||
== Реализация == | == Реализация == | ||
<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, в ядре ФОРТ-ЕС: | Описание и определение слова C, в ядре ФОРТ-ЕС: | ||
<PRE> | <PRE> | ||
Строка 54: | Строка 71: | ||
HEAD 202Q,'C',254Q,CCOM,$COL ; C, | HEAD 202Q,'C',254Q,CCOM,$COL ; C, | ||
DW HERE,CSTOR,ONE,ALLOT,SEMI | 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> | </PRE> | ||
Строка 70: | Строка 103: | ||
[[Категория:Стандартные слова]] | [[Категория:Стандартные слова]] | ||
[[Категория:1994 CORE]] | [[Категория: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 (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |