+!: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Строка 42: Строка 42:


== Ссылки ==
== Ссылки ==
* [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0130 Слово +! (plus-store) в стандарте ANS Forth] ''(англ.)''
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0130 +! (plus-store)] в стандарте ANS Forth ''(англ.)''
* [http://www.forth200x.org/documents/html/core.html#core:+! Слово +! (plus-store) в черновике Forth 200x] ''(англ.)''
* Слово [http://www.forth200x.org/documents/html3/core/PlusStore.html +! (plus-store)] в черновике Forth 200x ''(англ.)''
* [https://en.wikipedia.org/wiki/Augmented_assignment Augmented assignment в английской Википедии] ''(англ.)''
* [https://en.wikipedia.org/wiki/Augmented_assignment Augmented assignment в английской Википедии] ''(англ.)''



Версия от 03:09, 22 февраля 2016

+! (плюс-присвоить, добавить) — стандартное слово Каллисто.

Добавляет к содержимому ячейки с адресом a число n

Ввод слова +!

В режиме NUM последовательно нажмите две клавиши  +   П 

+! в стандарте ANS Forth

6.1.0130   +!                              "plus-store"                    CORE
           ( n|u a-addr -- )
           Прибавляет n|u к числу одна-ячейка в a-addr.
       См.: 3.3.3.1 Выравнивание адреса.


+! в предыдущем стандарте Forth-83 (англ.)

     +!           w1 addr --                    79        "plus-store"
          w1 is added to the w value at addr using the convention for
          + .  This sum replaces the original value at addr.


+! в стандарте Forth-79 (англ.)

+!             n addr --                     157       "plus-store"
    Add  n to the 16-bit value at the address,  by the  convention
    given for + .


+! в fig-FORTH Release 1 glossary, май 1979 (англ.)

+!     n  addr  ---                     L0
       Add n to the value at the address.
       Pronounced "plus-store".

Реализация +!

У Баранова-Ноздрунова (стр. 22) и Юрия Семёнова (стр. 22) приводится следующее описание слова +!:

 : +!   ( N,A ---> )                ( в стеке  n ADR       )
     ↑                              (          n ADR ADR   )
     @      ( запись в стек содержимого адреса n ADR [ADR] )
     rot                            (          ADR [ADR] n )
     +                           ( приращение  ADR [ADR]+n )
     ↔                              (          [ADR]+n ADR )
     ! ;   ( запись результата по адресу, хранящемуся стеке)

Ссылки


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


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