ST Q1
ADD I2
LD Q1
Операнды
Константы
Константы могут быть двух типов:
· целые числа в диапазоне от –127 до 127;
· любые другие числа.
Эти константы могут записываться в десятеричном и в шестнадцатеричном виде. Шестнадцатеричная константа начинается с 0х.
Ограничений на число констант первого типа не накладывается. Максимальное число констант второго типа для программ типа FB равно 10, а для PRG – 40. Совпадающие по значению константы считаются за одну.
Каждая инструкция программы содержит оператор и операнды. Оператор задает действие, которое надо выполнить с операндами. В качестве операндов в IL-программе могут использоваться все описанные выше переменные, кроме CMP, а также константы.
Значение операнда HEX-формата, задаваемого константой, не может быть больше 0xFF (255).
Язык Техно IL позволяет выполнять с операндами арифметические и логические операции, а также операции сравнения. Почти все они имеют два обозначения: символьное и мнемоническое.
|
|
Синтаксис записи операций
В соответствии со стандартом в строке записывается сначала мнемоническое обозначение операции, затем через пробел – операнд.. Техно IL позволяет использовать два операнда и мнемоническое или символьное обозначение операции. Кроме того, обозначение операции может быть помещено между операндами.
· Внимание! При записи символа операции между операндами он должен быть отделен пробелами с двух сторон.
Например, операция сложения переменной Q1 с переменной I2 с записью результата в первую из них в соответствии со стандартом записывается следующим образом:
В Техно IL эта операция может быть записана так же, а может - существенно компактнее:
или
+ Q1 I2
или
Q1 + I2
В одной строке программы можно записать несколько операций. В этом случае их следует разделять символом “;”.
Арифметические операции
Техно IL поддерживает следующие арифметические операции:
Символьное обозначение | Мнемоническое обозначение | Описание |
+ | ADD | Сложить операнды; |
- | SUB | Вычесть из первого операнда второй; |
* | MUL | Умножить операнды; |
/ | DIV | Разделить первый операнд на второй; |
% | MOD | Получить остаток от деления операндов; |
** | POW | Возвести первый операнд в степень, заданную вторым операндом; |
= | MOVE | Присвоить первому операнду значение второго. |
Результат выполнения операции заносится в первый операнд. Если в операции указан только один операнд, то он воспринимается как второй, а в качестве первого используется значение аккумулятора.
Логические операции
Программы на Техно IL позволяют выполнять следующие логические операции с операндами:
|
|
Символьное обозначение | Мнемоническое обозначение | Описание |
& | AND | Логическое умножение; |
| | OR | Логическое сложение; |
^ | XOR | Исключающее логическое сложение; |
ANDN | Логическое умножение первого операнда на инвертированное значение второго; | |
ORN | Логическое сложение первого операнда с инвертированным значением второго; | |
XORN | Исключающее логическое сложение первого операнда с инвертированным значением второго. |
Эти операции выполняются побитно над значениями соответствующих битов операндов.
Операции сравнения
Из операций сравнения в Техно IL реализованы следующие:
Символьное обозначение | Мнемоническое обозначение | Описание |
== | EQ | Сравнение на равенство; |
> | GT | Сравнение на "больше"; |
>= | GE | Сравнение на "больше или равно"; |
< | LT | Сравнение на "меньше"; |
<= | LE | Сравнение на "меньше или равно"; |
!= | NE | Сравнение на неравенство; |
TEST | Сравнение на равенство 0 логического умножения операндов. |
Эти операции сравнивают значение первого операнда со вторым на соответствующее условие. По результатам формируется значение переменной CMP. Оно будет истинно при выполнении условия и ложно в противном случае.
Эта переменная анализируется в операторах условного перехода Если в операции указан только один операнд, то он воспринимается как второй. А в качестве первого используется аккумулятор.