CMOVE

Материал из ПМК вики
Перейти к навигации Перейти к поиску

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.


CMOVE в предыдущем стандарте Forth-83 (англ.)

     CMOVE        addr1 addr2 u --              83            "c-move"
          Move u bytes beginning at address addr1 to addr2.  The byte
          at addr1 is moved first, proceeding toward high memory.  If
          u is zero nothing is moved.


CMOVE в стандарте Forth-79 (англ.)

CMOVE          addr1 addr2 n --              153           "c-move"
    Move  n  bytes  beginning  at address  addr1  to  addr2.   The
    contents  of  addr1  is moved  first  proceeding  toward  high
    memory.  If n is zero nothing is moved.


Ссылки


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


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