Слово ?: различия между версиями
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) |
||
(не показано 16 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
'''?''' (вопросительный знак, читается «вопрос») — стандартное слово [[Каллисто]]. Заглянуть в [[Ячейка (Каллисто)|ячейку]], [[Единое адресное пространство|адрес]] которой на [[Стек данных|стеке]]. | |||
? ( a −− ) Вывести значение ячейки по адресу a. | |||
Удаляет число из [[Стек данных|стека]] и отображает на [[индикатор]]е содержимое [[Ячейка (Каллисто)|ячейки]], [[Единое адресное пространство|адрес]] которой равен этому числу. | |||
== Ввод слова ? == | |||
В [[Режим NUM|режиме NUM]] нажмите [[Клавиша K|синюю клавишу {{Синяя клавиша|K}}]] | |||
== История == | |||
Слово было в Форте−79, убрано из Форта−84. Оно очень удобно для отладки и присутствует во многих системах. | |||
=== ? в стандарте Forth-79 (англ.) === | |||
<pre> | |||
? addr -- 194 "question-mark" | |||
Display the number at address, using the format of "." . | |||
</pre> | |||
=== ? в fig-FORTH Release 1 glossary, май 1979 (англ.) === | |||
<pre> | |||
? addr -- L0 | |||
Print the value contained at the address in free format according to | |||
the current base. | |||
</pre> | |||
== Реализация == | == Реализация == | ||
Слово ? это обёртка вокруг слов [[Слово @|@]] и [[Слово .|.]]. Оно может выдать число с плавающей запятой, если это число считывается из [[Регистр десятичных данных|десятичного регистра]]. | |||
Тем не менее, слово ? не предназначено для считывания беззнаковых 16-битных ячеек памяти и содержимого [[Регистры функций МК|регистров функций]]. К счастью, для этих целей просто написать собственные отладочные слова. | |||
<pre> | |||
3850 ; ∗∗ Вспомогательные процедуры ∗∗ | |||
3851 | |||
3852 ;#q | |||
3853 ; ? ( a −− ) Вывести значение ячейки по адресу a. | |||
3854 ; Удалить число из стека и отобразить на экране содержимое ячейки, адрес которой равен этому числу. | |||
3855 ; В Каллисто может выдать число с плавающей запятой, если оно считывается из десятичного регистра. | |||
3856 LQUEST: .DB 1 | |||
3857 .TEXT "?" ; ( адрес −− ) | |||
3858 .DW LDOTR | |||
3859 QUEST: .DW CALL, AT, BRAN,RFDOT | |||
</pre> | |||
Реализация из SP-Forth 4.20: | |||
<pre> | |||
: ? ( a-addr -- ) \ 94 TOOLS | |||
\ Показать значение, хранящееся по адресу a-addr. | |||
\ ? может быть реализован с использованием слов форматного преобразования | |||
\ чисел. Соответственно, он может испортить перемещаемую область, | |||
\ идентифицируемую #>. | |||
@ . | |||
; | |||
</pre> | |||
=== Советская реализация === | |||
Описание и определение слова ? в ядре ФОРТ-ЕС: | Описание и определение слова ? в ядре ФОРТ-ЕС: | ||
<PRE> | <PRE> | ||
Строка 15: | Строка 64: | ||
DW AT,$DOT,SEMI | DW AT,$DOT,SEMI | ||
</PRE> | </PRE> | ||
== Ссылки == | |||
* {{Исходник|q|?}} | |||
{{нет иллюстраций}} | |||
{{заготовка}} | |||
[[Категория:Слова Каллисто]] | |||
[[Категория:Слова высокого уровня]] | |||
[[Категория:Одноместные операции Каллисто]] | |||
[[Категория:Средства отладки Каллисто]] | |||
[[Категория:Работа с памятью Каллисто]] | |||
[[Категория:Терминальный ввод/вывод Каллисто]] | |||
[[Категория:Стандартные слова]] | |||
[[Категория:1994 TOOLS]] | |||
[[Категория:2012 TOOLS]] |
Текущая версия от 17:41, 13 ноября 2017
? (вопросительный знак, читается «вопрос») — стандартное слово Каллисто. Заглянуть в ячейку, адрес которой на стеке.
? ( a −− ) Вывести значение ячейки по адресу a.
Удаляет число из стека и отображает на индикаторе содержимое ячейки, адрес которой равен этому числу.
Ввод слова ?[править]
В режиме NUM нажмите синюю клавишу K
История[править]
Слово было в Форте−79, убрано из Форта−84. Оно очень удобно для отладки и присутствует во многих системах.
? в стандарте Forth-79 (англ.)[править]
? addr -- 194 "question-mark" Display the number at address, using the format of "." .
? в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]
? addr -- L0 Print the value contained at the address in free format according to the current base.
Реализация[править]
Слово ? это обёртка вокруг слов @ и .. Оно может выдать число с плавающей запятой, если это число считывается из десятичного регистра.
Тем не менее, слово ? не предназначено для считывания беззнаковых 16-битных ячеек памяти и содержимого регистров функций. К счастью, для этих целей просто написать собственные отладочные слова.
3850 ; ∗∗ Вспомогательные процедуры ∗∗ 3851 3852 ;#q 3853 ; ? ( a −− ) Вывести значение ячейки по адресу a. 3854 ; Удалить число из стека и отобразить на экране содержимое ячейки, адрес которой равен этому числу. 3855 ; В Каллисто может выдать число с плавающей запятой, если оно считывается из десятичного регистра. 3856 LQUEST: .DB 1 3857 .TEXT "?" ; ( адрес −− ) 3858 .DW LDOTR 3859 QUEST: .DW CALL, AT, BRAN,RFDOT
Реализация из SP-Forth 4.20:
: ? ( a-addr -- ) \ 94 TOOLS \ Показать значение, хранящееся по адресу a-addr. \ ? может быть реализован с использованием слов форматного преобразования \ чисел. Соответственно, он может испортить перемещаемую область, \ идентифицируемую #>. @ . ;
Советская реализация[править]
Описание и определение слова ? в ядре ФОРТ-ЕС:
? * А-> НАПЕЧАТАТЬ ЗНАЧЕНИЕ ПО АДРЕСУ А 38 Экран номер 38 ( 31.03.86 D.R D. .R . H. U. U.R ? ) : ? ( A->) @ . ;
Определение слова ? в FORTH ИТЭФ:
HEAD 201Q,,277Q,QUEST,$COL ; ? DW AT,$DOT,SEMI
Ссылки[править]
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |