+!: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) (→Ссылки) |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
'''+!''' (прибавить, читается «плюс-присвоить») — стандартное слово [[Каллисто]]. | '''+!''' (прибавить, читается «плюс-присвоить») — стандартное слово [[Каллисто]]. | ||
+! ( n a −− ) Увеличить на n содержимое ячейки с адресом a. | |||
Добавляет к содержимому ячейки с адресом a число n | Добавляет к содержимому [[Ячейка (Каллисто)|ячейки]] с [[Единое адресное пространство|адресом]] a число n. Подразумевается, что слово не пересекает границ областей памяти. | ||
== Ввод слова +! == | == Ввод слова +! == | ||
Строка 58: | Строка 58: | ||
== Ссылки == | == Ссылки == | ||
* {{Исходник|PlusStore|+!}} | |||
* См. слова [[Слово +|+]], [[Слово !|!]] и [[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 ''(англ.)'' | ||
Строка 71: | Строка 72: | ||
[[Категория:Арифметические операции Каллисто]] | [[Категория:Арифметические операции Каллисто]] | ||
[[Категория:Работа с памятью Каллисто]] | [[Категория:Работа с памятью Каллисто]] | ||
Версия от 18:01, 4 июня 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
Ссылки
- Исходный текст слова +! в Каллисто Классик 1.0
- См. слова +, ! и TOGGLE
- Слово +! (plus-store) в стандарте ANS Forth (англ.)
- Слово +! (plus-store) в черновике Forth 200x (англ.)
- Augmented assignment в английской Википедии (англ.)
- Variables, Constants, and Arrays в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |