Слово @: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 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 Выравнивание адреса.


== F@ в стандарте ANS Forth ==
  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.
== История ==
В 1968 году Чак Мур работал в Mohasco Industries, Inc ([https://en.wikipedia.org/wiki/Amsterdam_%28city%29,_New_York Amsterdam NY], ''англ.''). Первая версия интерпретатора, получившая название FORTH, заработала на миникомпьютере IBM 1130 с графическим дисплеем 2250 (16-битный процессор с ОЗУ 8К, дисководом, клавиатурой, принтером и ридером/панчером перфокарт). Первый FORTH знал слово @


== Реализация ==
== Реализация ==

Версия от 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

Ссылки


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.