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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 30: Строка 30:
           u bytes.  If u is zero nothing is moved.  (Useful for
           u bytes.  If u is zero nothing is moved.  (Useful for
           sliding a string towards higher addresses).
           sliding a string towards higher addresses).
== <CMOVE в стандарте Forth-79 (англ.) ==
<CMOVE        addr1 addr2 n --                    "reverse-c-move"
    Copy  n bytes beginning at addr1 to addr2.  The move proceeds
    within the bytes from high memory toward low memory.





Версия от 17:05, 7 сентября 2015

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


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

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


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

     CMOVE>       addr1 addr2 u --              83         "c-move-up"
          Move the u bytes at address addr1 to addr2.  The move begins
          by moving the byte at (addr1 plus u minus 1) to (addr2 plus
          u minus 1) and proceeds to successively lower addresses for
          u bytes.  If u is zero nothing is moved.  (Useful for
          sliding a string towards higher addresses).


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

<CMOVE         addr1 addr2 n --                    "reverse-c-move"
    Copy  n bytes beginning at addr1 to addr2.   The move proceeds
    within the bytes from high memory toward low memory.


Ссылки


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


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