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.
Ссылки
- Слово CMOVE (c-move) в стандарте ANS Forth (англ.) и комментарии к нему (англ.)
- Слово CMOVE (c-move) в черновике Forth 200x (англ.) и комментарий к нему (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |