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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Строка 21: Строка 21:
  Предположите символьную строку по адресу 100: "ABCD".
  Предположите символьную строку по адресу 100: "ABCD".
  Тогда после
  Тогда после


         100 DUP  CHAR+  3 CMOVE строка по адресу 100 - "AAAA".
         100 DUP  CHAR+  3 CMOVE строка по адресу 100 - "AAAA".


  Объяснение для CMOVE и CMOVE> вытекает из MOVE.
  Объяснение для CMOVE и CMOVE> вытекает из MOVE.


== Ссылки ==
== Ссылки ==

Версия от 18:12, 4 сентября 2015

CMOVE — стандартное слово Каллисто.

Копирует побайтно область памяти размером u байт начиная с a1 и записывает её начиная с a2.


CMOVE в стандарте ANS Forth

17.6.1.0910   CMOVE                    "c-move"                          STRING
           ( c-addr1 c-addr2 u -- )
           Если u больше чем нуль, копирует u последовательных символов из 
           области данных начинающейся с c-addr1 в область, начинающуюся с c-
           addr2, выполняя посимвольно с наименьших адресов к наибольшим.
       Отличие с: 17.6.1.0920 CMOVE>.
A.17.6.1.0910   CMOVE
Если c-addr2 находится в пределах исходной области, (то есть, когда c-addr2 - 
не меньше чем c-addr1 и c-addr2 - меньше чем количество c-addr1 u CHARS +), 
происходит размножение памяти.
Типичное использование:
Предположите символьную строку по адресу 100: "ABCD".
Тогда после
       100 DUP  CHAR+  3 CMOVE строка по адресу 100 - "AAAA".
Объяснение для CMOVE и CMOVE> вытекает из MOVE.

Ссылки


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


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