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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 13: Строка 13:
         См.: 3.3.3.1 Выравнивание адреса.
         См.: 3.3.3.1 Выравнивание адреса.


== +! в предыдущем стандарте Forth-83 (англ.) ==
== История ==
=== +! в предыдущем стандарте Forth-83 (англ.) ===
       +!          w1 addr --                    79        "plus-store"
       +!          w1 addr --                    79        "plus-store"
           w1 is added to the w value at addr using the convention for
           w1 is added to the w value at addr using the convention for
           + .  This sum replaces the original value at addr.
           + .  This sum replaces the original value at addr.


== +! в стандарте Forth-79 (англ.) ==
=== +! в стандарте Forth-79 (англ.) ===
  +!            n addr --                    157      "plus-store"
  +!            n addr --                    157      "plus-store"
     Add  n to the 16-bit value at the address,  by the  convention
     Add  n to the 16-bit value at the address,  by the  convention
     given for + .
     given for + .


== +! в fig-FORTH Release 1 glossary, май 1979 (англ.) ==
=== +! в fig-FORTH Release 1 glossary, май 1979 (англ.) ===
  +!    n  addr  ---                    L0
  +!    n  addr  ---                    L0
         Add n to the value at the address.
         Add n to the value at the address.

Версия от 01:05, 6 июня 2016

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

+!             ( n a −− )                           Увеличить на n содержимое ячейки с адресом a.

Добавляет к содержимому ячейки с адресом 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

Ссылки


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


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