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