Язык программирования Форт


Глава 11. Создание слов-определителей - часть 6


Это достигается с помощью слова DOES>. Но прежде чем рассматривать, как это осуществить, проделаем несколько упражнений, в которых мы дополнительно познакомимся с применением слова CREATE.

Упражнения

1. Опишите определяющее слово 2VARIABLE. которое должно создать переменную для хранения чисел двойной длины. Определите его таким образом, чтобы переменная инициализировалась нулем, и так, чтобы оно компилировало двойное число в стек, когда исполняется 2VARIABLE (последний метод используется в нескольких нестандартных версиях форта для всех переменных). 2. Опишите определяющее слово $CONSTANT, которое при исполнении в форме $CONSTANT строка" будет запоминать в словаре строку как счетную. При исполнении COUNT TYPE строка должна выводиться на экран. 3. Опишите слово-определитель RESERVE, которое должно создавать слова, для которых в словаре резервируется n байтов. Таким образом, с помощью 10 RESERVE 10BYTES определяется слово 10BYTES, которое, в свою очередь, резервирует 10 байтов. Напишите слово RESERVE, которое должно инициализировать все зарезервированные байты нулями. 4. Опишите слово-определитель BLOCKARRAY, которое должно запомнить число, взятое из стека, и после этого зарезервировать еще 1024 байта для содержимого блока, т.е. 213 BLOCKARRAY BLK1 должно создать слово BLK1, в которое должно быть занесено число 213, после которого должны следовать 1024 свободных байта. 5. Теперь напишите слово GETBLOCK. которое должно заполнять содержимое блочного массива содержимым указанного блока. Таким образом, BLK1 GETBLOCK должно поместить содержимое блока 213 в зарезервированное пространство в BLK1 (используйте слово nBLOCK). Напишите слово PUTBLOCK, которое должно пересылать содержимое блочного массива в блок с указанным номером. (Подсказка: вспомните действие слов UPDATE и SAVE-BUFFERS или FLUSH.) 6. Напишите два слова В@ и В!, которые должны соответственно извлекать и запоминать числа в указанном блочном массиве, т.е. 5 BLK1 В@ должно извлекать пятый элемент из блочного массива, который должен прийти из блока 213.


- Начало -  - Назад -  - Вперед -