Слово @: различия между версиями
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 9: | Строка 9: | ||
В [[Режим NUM|режиме NUM]] нажмите [[Клавиша ИП|чёрную клавишу {{Чёрная клавиша|ИП}}]] | В [[Режим NUM|режиме NUM]] нажмите [[Клавиша ИП|чёрную клавишу {{Чёрная клавиша|ИП}}]] | ||
== @ в стандарте ANS Forth == | == @ и F@ в стандарте ANS Forth == | ||
<PRE> | |||
6.1.0650 @ "fetch" CORE | 6.1.0650 @ "fetch" CORE | ||
( a-addr -- x ) | ( a-addr -- x ) | ||
Строка 16: | Строка 17: | ||
См.: 3.3.3.1 Выравнивание адреса. | См.: 3.3.3.1 Выравнивание адреса. | ||
12.6.1.1472 F@ "f-fetch" FLOATING | 12.6.1.1472 F@ "f-fetch" FLOATING | ||
( f-addr -- ) ( F: -- r ) or ( f-addr -- r ) | ( f-addr -- ) ( F: -- r ) or ( f-addr -- r ) | ||
r - значение, сохраненное в f-addr. | r - значение, сохраненное в f-addr. | ||
</PRE> | |||
== @ в предыдущем стандарте Forth-83 (англ.) == | == История == | ||
В 1968 году Чак Мур работал в Mohasco Industries, Inc ([https://en.wikipedia.org/wiki/Amsterdam_%28city%29,_New_York Amsterdam NY], ''англ.''). Первая версия интерпретатора, получившая название FORTH, заработала на миникомпьютере IBM 1130 с графическим дисплеем 2250 (16-битный процессор с ОЗУ 8К, дисководом, клавиатурой, принтером и ридером/панчером перфокарт). Первый FORTH знал слово @ | |||
=== @ в предыдущем стандарте Forth-83 (англ.) === | |||
@ addr -- 16b 79 "fetch" | @ addr -- 16b 79 "fetch" | ||
16b is the value at addr. | 16b is the value at addr. | ||
== @ в стандарте Forth-79 (англ.) == | === @ в стандарте Forth-79 (англ.) === | ||
@ addr -- n 199 "fetch" | @ addr -- n 199 "fetch" | ||
Leave on the stack the number contained at addr. | Leave on the stack the number contained at addr. | ||
== @ в fig-FORTH Release 1 glossary, май 1979 (англ.) == | === @ в fig-FORTH Release 1 glossary, май 1979 (англ.) === | ||
@ addr --- n L0 | @ addr --- n L0 | ||
Leave the 16 bit contents of address. | Leave the 16 bit contents of address. | ||
== Реализация == | == Реализация == |
Версия от 01:08, 6 июня 2016
@ (разыменовать, взять, читается «извлечь») — стандартное слово Каллисто. Замещает адрес в стеке его содержимым, cчитывая десятичное число или 16-битное целое со знаком.
@ ( a -- x ) Извлечь. Считать значение ячейки по адресу a.
Заносит в стек число x, хранящееся в ячейке по адреcу a.
Если a указывает на байтовую память (диапазоны 0…9999 и 11000…18167), из двухбайтовой ячейки по адресам a и a+1 (старший и младший байт соответственно) считывается 16-битное двоичное целое со знаком x (x меняется от -32768 до 32767).
Ввод слова @
В режиме NUM нажмите чёрную клавишу ИП
@ и F@ в стандарте ANS Forth
6.1.0650 @ "fetch" CORE ( a-addr -- x ) x - значение, сохраненное в a-addr. См.: 3.3.3.1 Выравнивание адреса. 12.6.1.1472 F@ "f-fetch" FLOATING ( f-addr -- ) ( F: -- r ) or ( f-addr -- r ) r - значение, сохраненное в f-addr.
История
В 1968 году Чак Мур работал в Mohasco Industries, Inc (Amsterdam NY, англ.). Первая версия интерпретатора, получившая название FORTH, заработала на миникомпьютере IBM 1130 с графическим дисплеем 2250 (16-битный процессор с ОЗУ 8К, дисководом, клавиатурой, принтером и ридером/панчером перфокарт). Первый FORTH знал слово @
@ в предыдущем стандарте Forth-83 (англ.)
@ addr -- 16b 79 "fetch" 16b is the value at addr.
@ в стандарте Forth-79 (англ.)
@ addr -- n 199 "fetch" Leave on the stack the number contained at addr.
@ в fig-FORTH Release 1 glossary, май 1979 (англ.)
@ addr --- n L0 Leave the 16 bit contents of address.
Реализация
Слово @ в ФОРТ-ЕС и FORTH ИТЭФ также было примитивом. Вот описание и определение @ из ФОРТ-ЕС:
@ А->W ДАТЬ ЗНАЧЕНИЕ ПО АДРЕСУ А 11 Экран номер 11 ( 31.03.86 ! 0! @ С! С@ , С, EXECUTE ) CODE @ ( А->W РАЗЫМЕНОВАТЬ A) RW2 PULL, RW2 RMASK NR, RW1 0 (, RW2 RFORTH LH, PUTRW1 B, END-CODE
Вот определение @ из FORTH ИТЭФ:
HEAD 201Q,,300Q,AT ; @ POP BX PUSH [BX] NEXT
Ссылки
- Исходный текст слова @ в Каллисто Классик 1.0
- См. слова !, U@, C@, ИП и символ @
- Слова @ (fetch) и F@ (f-fetch) в стандарте ANS Forth (англ.)
- Слова @ (fetch) и F@ (f-fetch) в черновике Forth 200x (англ.)
- Variables, Constants, and Arrays в книге Leo Brodie Starting Forth (англ.)
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |