Учебное пособие по языку ФОРТ
- Автор: ИТФ «Технофорт»
- Жанр: Современные российские издания / Литература ХX века (эпоха Социальных революций) / Программирование: прочее / Forth
- Дата выхода: 1993
Читать книгу "Учебное пособие по языку ФОРТ"
9. Работа с участками памяти
Часто приходится выполнять действия сразу над большими участками памяти. Участок памяти в таких действиях определяется адресом его начального байта и длиной.
FILL ... addr n c --> ...
Содержимое n байтов начиная с адреса addr заполняется кодом "с".
BLANK ... addr n --> ...
Эквивалентно "FILL" c заполнением кодом пробела.
ERASE ... addr n --> ...
Эквивалентно тексту "0 FILL".
CMOVE ... addr1 addr2 n --> ...
Побайтное копирование участка в n байтов с началом addr1 по адресу addr2 в сторону увеличения адресов.
Слово "CMOVE>" отличается от "CMOVE" тем, что начинает запись с ПОСЛЕДНЕГО байта участков. Различие этих слов существенно при перекрытии участков. Вот небольшой пример. Пусть на вершине стека лежит адрес участка памяти в 12 байтов, где записан текст "Форт-система". Тогда исполнение
DUP 4 + 8 CMOVE
превратит этот текст в "ФортФортФорт", a если выполнить "CMOVE>" вместо "CMOVE", то получится "ФортФорт-сис". С помощью этих слов удобно размножать маленькие участки памяти внутри больших (например, числа внутри массивов).
Для заполнения участка памяти информацией непосредственно с клавиатуры имеется слово:
EXPECT ... addr n --> ...
Участок памяти от адреса addr длиной n байтов заполняется в сторону увеличения адресов вводимыми с клавиатуры символами до тех пор, пока не заполнится весь участок или пользователь не завершит ввод (нажав клавишу ввода). Переменная "SPAN" содержит число фактически введенных символов.