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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Строка 60: Строка 60:
* См. слова [[Слово +|+]], [[Слово !|!]] и [[TOGGLE]]
* См. слова [[Слово +|+]], [[Слово !|!]] и [[TOGGLE]]
* Слово [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/html3/core/PlusStore.html +! (plus-store)] в черновике Forth 200x ''(англ.)''
* Слово [http://forth-standard.org/standard/core/PlusStore +! (plus-store)] в черновике Forth 200x ''(англ.)''
* [https://en.wikipedia.org/wiki/Augmented_assignment Augmented assignment в английской Википедии] ''(англ.)''
* [https://en.wikipedia.org/wiki/Augmented_assignment Augmented assignment в английской Википедии] ''(англ.)''
* [http://www.forth.com/starting-forth/sf8/sf8.html Variables, Constants, and Arrays] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''
* [http://www.forth.com/starting-forth/sf8/sf8.html Variables, Constants, and Arrays] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''

Версия от 09:23, 29 марта 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 )
     ! ;   ( запись результата по адресу, хранящемуся стеке)

Слово +! в ФОРТ-ЕС было примитивом. Вот его описание и определение:

  +!          W,A ->                 УВЕЛИЧИТЬ ЗНАЧЕНИЕ ПО АДРЕСУ A НА W  17

                     Экран номер 17
( 31.03,64   NEGATE ABS + - 1+ 1- 2+ 2- +!  1+!  )

CODE +!   ( W,A->)   14 LHRW12 BAL,  RW2 RМASК NR,   RW1 0 (,
  RW2 RFORTH AН, RW1 0 (, RW2 RFORTH SТН, 2РОР B, END-CODE

В FORTH ИТЭФ слово +! также было примитивом, вот его определение:

            HEAD     202Q,'+',241Q,PSTOR                  ; +!
            POP  BX
            POP  CX
            ADD  [BX], CX
            NEXT

Ссылки


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


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