Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
gerasimov_a_v_titovcev_a_s_scada_sistema_trace_...doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1.43 Mб
Скачать

5. Описание языка Tehno il

5.1. Синтаксис Техно il

Программа на языке Техно IL представляет собой последовательность инструкций. Каждая инструкция должна начинаться с новой строки и должна содержать оператор с опциональным модификатором и, для некоторых операций, один или более операндов, разделенных пробелами. Между инструкциями могут располагаться пустые строки. Компилятор не чувствителен к регистру, т.е. инструкции add var_002 и ADD VAR_002  равнозначны.

Примеры IL-инструкций

ADD VAR_000 2.6 

LT VAR_000 VAR_001

JMPC label1     

GT VAR_001 20

JMPC label2     

LD 278         

label1: CAL FUNCTION_000(VAR_000, VAR_001)

label2: ST VAR_001

Под аккумулятором в Техно IL понимается хранилище текущего результата вычислений (в этом качестве выступает один из регистров процессора). Далее в описании языка Техно IL значение аккумулятора обозначается словом result. Функция на языке Техно IL возвращает result.

Техно IL поддерживает одноадресный и двухадресный режимы записи инструкций, которые оперируют с двумя операндами. В первом случае первым операндом является аккумулятор, который опускается при записи, во втором случае указываются два операнда.

Пример

В данном примере представлена запись процедуры a = a + b в одноадресном и двухадресном режиме. Одноадресный режим:

LD a    //result = a

ADD b   //result = result + b

ST a    //a = result

Двухадресный режим позволяет записать ту же операцию компактнее:

ADD a b  // a = a + b

В IL-программе могут использоваться метки и комментарии. Правила их задания аналогичны правилам Техно ST.

5.2. Операторы и модификаторы Техно il

К ним относятся:

– модификаторы Техно IL;

– операторы обмена с аккумулятором;

– логические операторы Техно IL;

– арифметические операторы Техно IL;

– операторы сравнения Техно IL;

– операторы перехода и вызова функции Техно IL.

5.3. Модификаторы Техно il

Модификаторы Техно IL – это литеры N, C и X, которые могут быть приписаны справа к имени ряда операторов.

Модификатор N обозначает логическое отрицание операнда.  Например, инструкция

AND a

интерпретируется как result = result AND a, а инструкция

ANDN a

интерпретируется как result = result AND NOT a.

Для операторов JMP, CAL и RET:

– модификатор C обозначает, что инструкция выполняется в том случае, если результат предыдущей операции сравнения истинен;

– модификатор X обозначает, что инструкция выполняется в том случае, если result = TRUE.

5.4. Операторы обмена с аккумулятором

В таблице 1 представлены операторы обмена с аккумулятором.

Таблица 1

Синтаксис

Допустимый модификатор

Действие

LD operand

N

result := operand

ST operand

N

operand := result

Знак ":=" в таблице 1 обозначает операцию присваивания.

В качестве операнда может использоваться численная или булева переменная. В качестве операнда оператора LD может использоваться число.

Отличное от нуля значение аккумулятора интерпретируется как TRUE, нулевое – как FALSE, поэтому значение аккумулятора может быть присвоено как численной, так и булевой переменной.  

Пример

VAR VAR_000 : INT := 10; END_VAR

VAR VAR_001 : BOOL := TRUE; END_VAR

VAR VAR_002 : BOOL; END_VAR

LD 8          //result := 8

ST VAR_000    //VAR_000 := 8

ST VAR_002    //VAR_002 := TRUE

LD 0          //result := 0 

ST VAR_001    //VAR_001 := FALSE

LD VAR_001    //result := FALSE

ST VAR_002    //VAR_002 := FALSE

ST VAR_000    //VAR_000 := 0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]