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

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


Копирует побайтно область памяти размером u байт начиная с a1 и записывает её начиная с a2.
Копирует побайтно область памяти размером 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.





Версия от 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.


Ссылки


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


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