CMOVE: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 28: | Строка 28: | ||
Объяснение для CMOVE и CMOVE> вытекает из MOVE. | Объяснение для CMOVE и CMOVE> вытекает из MOVE. | ||
== CMOVE в предыдущем стандарте Forth-83 (англ.) == | == CMOVE в предыдущем стандарте Forth-83 (англ.) == | ||
Строка 35: | Строка 34: | ||
at addr1 is moved first, proceeding toward high memory. If | at addr1 is moved first, proceeding toward high memory. If | ||
u is zero nothing is moved. | u is zero nothing is moved. | ||
== CMOVE в стандарте Forth-79 (англ.) == | == CMOVE в стандарте Forth-79 (англ.) == | ||
Строка 42: | Строка 40: | ||
contents of addr1 is moved first proceeding toward high | contents of addr1 is moved first proceeding toward high | ||
memory. If n is zero nothing is moved. | memory. If n is zero nothing is moved. | ||
== CMOVE в fig-FORTH Release 1 glossary, май 1979 (англ.) == | == CMOVE в fig-FORTH Release 1 glossary, май 1979 (англ.) == | ||
Строка 50: | Строка 47: | ||
toward high memory. Further specification is necessary on word | toward high memory. Further specification is necessary on word | ||
addressing computers. | addressing computers. | ||
== Ссылки == | == Ссылки == | ||
Строка 60: | Строка 56: | ||
{{заготовка}} | {{заготовка}} | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория:Примитивы]] | |||
[[Категория:Работа с памятью Каллисто]] | [[Категория:Работа с памятью Каллисто]] | ||
[[Категория:Слова Каллисто без стековых диаграмм]] | [[Категория:Слова Каллисто без стековых диаграмм]] |
Версия от 14:36, 19 марта 2016
CMOVE (переслать) — стандартное слово Каллисто.
Копирует побайтно область памяти размером u байт начиная с a1 и записывает её начиная с a2.
Ввод слова CMOVE
В режиме ЛАТ последовательно нажмите клавиши С/П ÷ 5 ↔ ИП
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 в fig-FORTH Release 1 glossary, май 1979 (англ.)
CMOVE from to count -- Move the specified quantity of bytes beginning at address from to address to. The contents of address from is moved first proceeding toward high memory. Further specification is necessary on word addressing computers.
Ссылки
- См. также слова CMOVE> FILL ERASE BLANK
- Слово CMOVE (c-move) и комментарии к нему в стандарте ANS Forth (англ.)
- Слово CMOVE (c-move) и комментарий к нему в черновике Forth 200x (англ.)
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |