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


Глава 10. Хранение программ и данных - часть 5


Например, в конце блока 25 нужно поместить 26 LOAD, в блоке 26 - 27 LOAD и т.д. Но во многих версиях предусмотрен более простой способ. Нестандартное слово -> (следующий_блок) означает "загрузить следующий блок". Как только будет встречено это слово, будет загружаться следующий блок, даже если после него в предыдущем блоке что-либо осталось. Мы узнаем вскоре, как определить это слово.

Слово EXIT производит особое действие, когда оно встречается в блоке (вне определения через двоеточие). Оно прекращает загрузку блока. Поэтому, если вы хотите загрузить только часть программы, вы можете вставить слово EXIT перед той частью программы, которая должна быть проигнорирована.

Кроме слов LIST и LOAD вы должны познакомиться со словом COPY (оно также нестандартное, но имеется во многих версиях). Слово COPY используется в такой форме обращения: n1 n2 COPY чтобы скопировать блок n1 в блок n2. В зависимости от версии Форта после слова COPY может потребоваться слово FLUSH, которое указывает, что произведенные в блоке изменения следует сохранить. Слово FLUSH в MMSFORTH включать в программу копирования обязательно. Слово COPY удобно для перемещения программы в любое место. Мы предлагаем вам дать определение этого слова.

Слово BLK - это переменная, в которой записывается номер блока, загруженного последним (если ввод производится с клавиатуры, то в BLK записан 0, это означает, что в блоке 0 не может быть записан исходный код программы). Вы можете определить слово : .BLK ( - ) BLK @ U. : IMMEDIATE которое будет показывать на экране номер блока, если он был загружен. Слово IMMEDIATE обеспечивает немедленное исполнение слова BLK, независимо от того, включено оно или не включено в определение-двоеточие. (Мы рассмотрим слово IMMEDIATE более подробно в гл. 15.)

При загрузке блоков используется еще одна переменная >IN. В гл. 9 вы узнали, что >IN указывает на соответствующий байт во входном буфере, в который поступает входная информация (более подробно об этом слове смотрите в гл. 15).


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