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

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

Синтаксис

Модификатор

Действие

LD operand

N

result := operand

ST operand

N

operand := result

В качестве операнда может использоваться численная или булева переменная. В качестве операнда оператора 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

Логические операторы

Синтаксис

Модификатор

Действие

S operand

 

operand := TRUE (см. примечание)

R operand

 

operand := FALSE (см. примечание)

AND operand1 operand2

N

result := operand1 := operand1 AND operand2

OR operand1 operand2

N

result := operand1 := operand1 OR operand2

XOR operand1 operand2

N

result := operand1 := operand1 XOR operand2

Примечание. Оператор выполняется только тогда, когда result = TRUE.

В качестве операндов могут использоваться булевы переменные. Вторым операндом может быть число (но не численная переменная), которое интерпретируется следующим образом: не равно 0 – TRUE; равно 0 – FALSE. Выполнение операторов R и S не изменяет значения аккумулятора.

Пример:

VAR VAR_001 : BOOL := TRUE; END_VAR

VAR VAR_002 : BOOL; END_VAR

VAR VAR_004 : INT := 0; END_VAR

LD 1                 //result := 1

S VAR_002            //VAR_002 := TRUE

R VAR_002            //VAR_002 := FALSE

AND VAR_001 VAR_002  //result := VAR_001 := FALSE

LD 1                 //result := 1 

S VAR_001            //VAR_001 := TRUE

OR VAR_002 VAR_001   //result := VAR_002 := TRUE

XOR VAR_002 VAR_001  //result := VAR_002 := FALSE

OR VAR_002 10        //result := VAR_002 := TRUE

Арифметические операторы

Синтаксис

Действие

ADD operand1 operand2

result := operand1 := operand1 + operand2

SUB operand1 operand2

result := operand1 := operand1 – operand2

MUL operand1 operand2

result := operand1 := operand1 * operand2

DIV operand1 operand2

result := operand1 := operand1 : operand2

В качестве операндов используются численные переменные, в качестве второго операнда может использоваться число. Арифметические операторы не допускают использования модификаторов.

Пример:

VAR VAR_000 : REAL := 20; END_VAR

VAR VAR_001 : LREAL := 30; END_VAR

ADD VAR_000 10        //result := VAR_000 := 30

MUL VAR_001 9         //result := VAR_001 := 270

SUB VAR_001 VAR_000   //result := VAR_001 := 240

DIV VAR_001 VAR_000   //result := VAR_001 := 8