Текущая версия |
Ваш текст |
Строка 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> |
Строка 64: |
Строка 15: |
| DW AT,$DOT,SEMI | | DW AT,$DOT,SEMI |
| </PRE> | | </PRE> |
|
| |
| == Ссылки ==
| |
| * {{Исходник|q|?}}
| |
|
| |
|
| |
|
| {{нет иллюстраций}} | | {{нет иллюстраций}} |
Строка 77: |
Строка 24: |
| [[Категория:Работа с памятью Каллисто]] | | [[Категория:Работа с памятью Каллисто]] |
| [[Категория:Терминальный ввод/вывод Каллисто]] | | [[Категория:Терминальный ввод/вывод Каллисто]] |
| [[Категория:Стандартные слова]] | | [[Категория:Слова Каллисто без стековых диаграмм]] |
| [[Категория:1994 TOOLS]]
| |
| [[Категория:2012 TOOLS]]
| |