Описание языка Tehno IL

Синтаксис Техно IL

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

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

ADD VAR_000 2.6

LT VAR_000 VAR-001

JMPC label 1

GT VAR-001 20

JMPC label2

LD 278

labell: CAL FUNCTION_000(VAR_000, VAR_001)

label2: ST VAR_001

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

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

Пример

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

LD a //result = а

ADD b //result = result + b

ST a //a = result

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

ADD ab //а = а + Ь

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

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

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

  • - модификаторы Техно IL;
  • - операторы обмена с аккумулятором;
  • - логические операторы Техно IL;
  • - арифметические операторы Техно IL;
  • - операторы сравнения Техно IL;
  • - операторы перехода и вызова функции Техно IL.

Модификаторы Техно IL

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

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

AND а

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

ANDN а

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

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

  • - модификатор С обозначает, что инструкция выполняется в том случае, если результат предыдущей операции сравнения истинен;
  • - модификатор X обозначает, что инструкция выполняется в том случае, если result = TRUE.
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >