Редактирование:
+!
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Реализация == <pre> 2064 ;#PlusStore 2065 ; +! ( y a −− ) Увеличить на y содержимое ячейки с адресом a. 2066 ; Добавить к содержимому ячейки с адресом a число y 2067 ; Подразумевается, что ячейка не пересекает границ областей памяти 2068 ; Может увеличивать содержимое десятичных регистров, но не регистров функций 2069 LPSTOR: .DB 2 2070 .TEXT "+!" 2071 .DW LTIB 2072 PSTOR: .DW JPSTOR 2073 JPSTOR: RM3 MA 1 + M8 1 + M3 2074 KRMA 1 EE 4 − KX>=09 MA ; Защита от "переменных" в памяти программ 2075 1000 − FX>=0 PSTOR1 ; 1000 быстрее, чем 1 ВП 3 2076 RMA 1 + MB 2077 KRMA RME ∗ KRMB + ; @ 2078 KRM8 + ; + 2079 RME FX^2 + ; X1 := 65536 2080 PSTOR3: FANS − FX<0 PSTOR3 2081 PSTOR4: FANS + FX>=0 PSTOR4 2082 PSTOR2: ENT RME / KINT KMA 2083 RME ∗ − KMB KGOTO9 ; ! EXIT 2084 PSTOR1: KRMA KRM8 + KMA KGOTO9 </pre> Реализация из SP-Forth 4.20: <pre> CODE +! ( n|u a-addr -- ) \ 94 \ Прибавить n|u к одинарному числу по адресу a-addr. MOV EDX, [EBP] ADD [EAX], EDX MOV EAX, 4 [EBP] LEA EBP, 8 [EBP] RET END-CODE </pre> === Советская реализация === У Баранова-Ноздрунова (стр. 22) и Юрия Семёнова (стр. 22) приводится следующее определение слова +!: : +! ( N,A ---> ) ( в стеке n ADR ) ↑ ( n ADR ADR ) @ ( запись в стек содержимого адреса n ADR [ADR] ) rot ( ADR [ADR] n ) + ( приращение ADR [ADR]+n ) ↔ ( [ADR]+n ADR ) ! ; ( запись результата по адресу, хранящемуся стеке) Слово +! в ФОРТ-ЕС было [[примитив]]ом. Вот его описание и определение: <PRE> +! 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 </PRE> В FORTH ИТЭФ слово +! также было [[примитив]]ом, вот его определение: <PRE> HEAD 202Q,'+',241Q,PSTOR ; +! POP BX POP CX ADD [BX], CX NEXT </PRE>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице