Язык Форт и его реализации


         

Их синтаксис аналогичен синтаксису соответствующих


Их синтаксис аналогичен синтаксису соответствующих операторов языка Форт.

Условный оператор в полной или сокращенной форме записывается следующим образом:

<КОД-УСЛОВИЯ> IF <ЧАСТЬ-ТО> ELSE <ЧАСТЬ-ИНАЧЕ> THEN <КОД-УСЛОВИЯ> IF <ЧАСТЬ-ТО> THEN

Часть «то» выполняется, только если в разрядах PSW установлен заданный «код условия», в противном случае выполняется часть «иначе», если она есть.

Циклы могут быть записаны в одной из трех форм:

BEGIN <ТЕЛО-ЦИКЛА> AGAIN BEGIN <ТЕЛО-ЦИКЛА> <КОД-УСЛОВИЯ> UNTIL BEGIN <ТЕЛО-1> <КОД-УСЛОВИЯ> WHILE <ТЕЛО-2> REPEAT

Цикл BEGIN-AGAIN является бесконечным, BEGIN-UNTIL прекращает выполнение при указанном коде условия, в цикле BEGIN-WHILE-REPEAT, наоборот, указанный код условия задает продолжение цикла.

Для указания кода условия в ассемблере используются следующие слова: 0= — установлен флаг Z, 0< — флаг S, CS — флаг C, PE — флаг P. Для инвертирования кода условия используется слово NOT.

Структурные операторы компилируют на своем месте команды безусловных и условных переходов с указанным условием.

Для работы с явно задаваемыми метками в ассемблер включены слова вида 1#: 2#: ... 10#: и 1# 2# ... 10#. Слова первой группы задают определение метки, слова второй — использование. Метки имеют строго локальный характер, т.е. эти слова можно использовать только внутри определений через CODE и между словами ;CODE и END-CODE. Наряду с метками допускается использование ассемблерных структур управления.

Локальные метки рекомендуется использовать только в трехбайтных командах типа JMP, CALL, LXI. Уже определенные локальные метки могут участвовать в арифметических и стековых операциях; использующие вхождения меток, определяющие вхождения которых вводятся позднее (ссылки вперед), могут участвовать только в операциях, сводящихся к добавлению к ним числа со знаком.

Для реализации работы с метками ассемблер имеет таблицу меток LTABLE и таблицу ссылок вперед FRTABLE.

Содержание  Назад  Вперед