Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материалы к экзамену по АСУП / АСУП. Конспект лекций.doc
Скачиваний:
75
Добавлен:
02.03.2016
Размер:
3.45 Mб
Скачать

Операторы сравнения

Синтаксис

Действие

GT operand1 operand2

result := TRUE, если operand1 > operand2

GE operand1 operand2

result := TRUE, если operand1 >= operand2

EQ operand1 operand2

result := TRUE, если operand1 == operand2

NE operand1 operand2

result := TRUE, если operand1 <> operand2

LE operand1 operand2

result := TRUE, если operand1 <= operand2

LT operand1 operand2

result := TRUE, если operand1 < operand2

В качестве операндов используются численные переменные, в качестве второго операнда может использоваться число. Операторы сравнения не допускают использования модификаторов. Операторы сравнения, как правило, предшествуют операторам JMPC, CALC и RETC. Если результат сравнения ложен, инструкции сравнения не изменяют значения аккумулятора, а последующий оператор JMPC, CALC или RETC игнорируется (даже если result = TRUE).

Пример

VAR VAR_000 : INT := 20; END_VAR

VAR VAR_001 : INT := 30; END_VAR

VAR VAR_002 : BOOL; END_VAR

LD 1               //result := TRUE

GT VAR_000 VAR_001 //результат сравнения ложен (20<30)

//аккумулятор сохраняет свое значение (TRUE)

RETC               //RETC игнорируется

LD VAR_002         //result := FALSE

LT VAR_000 VAR_001 //результат сравнения истинен

        //result := TRUE

CALC fff(VAR_000)  //вызов функции произойдет

Операторы перехода и вызова функции

Синтаксис

Модификатор

Действие

JMP имя_метки

C, X

переход к строке с указанной меткой

CAL имя_функции(val1, ... valN)

C, X

вызов функции или функции-блока

RET

C, X

выход из программы, функции или функции-блока

Операторы перехода выполняются, если строка с указанной меткой находится в том же программном компоненте. В круглых скобках через запятую указываются значения, передаваемые в функцию. Между именем функции и круглыми скобками пробел необязателен. Число передаваемых в функцию значений должно быть равно числу аргументов, заданных для этой функции. При выполнении оператора RET и его разновидностей функция возвращает значение result. Определены следующие модификации данных операторов:

JMP, CAL, RET – соответственно оператор безусловного перехода, безусловного вызова и безусловного выхода.

JMPX, CALX, RETX – соответственно оператор условного перехода, условного вызова и условного выхода. Инструкция, содержащая любой их этих операторов, выполняется только тогда, когда result=TRUE, в противном случае игнорируется.

JMPC, CALC, RETC – соответственно оператор условного перехода, условного вызова и условного выхода. Эти операторы следуют непосредственно за оператором сравнения. Инструкция, содержащая любой их этих операторов, выполняется только тогда, когда результат предыдущей операции сравнения истинен, в противном случае игнорируется.