Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsia_N_5.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
69.12 Кб
Скачать

20 Вопрос Операторы циклов, условных и безусловных переходов, условный оператор.

Операторы безусловных переходов

осуществляет переход на указанную метку, независимо ни от каких условий. синтаксис:

JMP <метка>

вместо JMP использовать обозначение GOTO.

Операторы условных переходов

Техно IL поддерживает три оператора условных переходов. Они имеют следующий синтаксис:

JMPC <метка>

JMPN <метка>

JMPX <метка>

Первый из них осуществляет переход на указанную метку при значении истина переменной CMP, второй – при значении ложь, а последний – значение аккумулятора отличном от 0.    Вместо JMP можно писать GOTO.

Условный оператор

синтаксис:

IF

<текст программы>

THEN

<текст программы>

ELSE

<текст программы>

END_IF

Текст программы между словами IF и THEN должен содержать операции, формирующие значение переменной CMP. Она анализируется после выполнения этого фрагмента. В случае истинности выполняется фрагмент программы между THEN и ELSE. В противном случае - между ELSE и END_IF.

21 Вопрос

Операторы циклов

существует два оператора циклов, оператор с предварительной проверкой завершения цикла и оператор с последующей проверкой завершения цикла.

Первый оператор:

WHILE <операнд>

<текст программы>

END_WHILE

Здесь фрагмент программы между строками начала и конца цикла будет выполняться, пока значение операнда не станет равно 0.

Второй оператор цикла проверяет значения операнда на равенство 0 не в его начале, а в конце цикла.

REPEAT

<текст программы>

UNTIL <операнд>

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

BREAK

При его выполнении работа цикла завершается и выполняется следующая после цикла инструкция.

Операторы подстановки имен переменных, обмена с аккумулятором; завершения программы

22 Вопрос

Оператор #DEFINE

Позволяет использовать в тексте IL-программы любые имена для входных и выходных переменных типа I и Q.

Оператор #DEFINE имеет следующий синтаксис:

#DEFINE <операнд> <name>,

где

операнд – имя переменной в терминах идентификаторов I и Q,

name – мнемоническое имя. В

пример

#define I0 LEVEL

#define Q0 REG

в метапрограммах рассматриваемый оператор не применяется.

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

Предназначены для обмена данными с переменной result (аккумулятор).

Синтаксис

LD <операнд>

ST <операнд>

LD записывает в аккумулятор значение операнда. ST – копирует значение аккумулятора в указанный операнд.

Операторы обмена с файлами данных

Техно IL позволяет формировать значения переменных типа W, считывая их из файлов, и сохранять их в файлы. Для этого предусмотрены три оператора.

READ <операнд1> <операнд2>

WRITE <операнд1> <операнд2>

PRINT <операнд1> <операнд2>

Оператор READ предназначен для считывания переменных типа W из файла. При выполнении этого оператора считываются переменные, начиная с номера 0 до переменной с номером, заданным в операнд1. Значение второго операнда указывает файл, из которого будут считываться данные. Этот файл должен иметь текстовый формат. Его имя формируется следующим образом:

W<число>.txt ,

где число – значение второго операнда.

Каждая строка файла должна содержать два числа, разделенных пробелом. Первое число – это номер переменной, а второе – ее значение. При выполнении оператора READ переменной присваивается последнее в файле значение с соответствующим номером.

Операторы WRITE и PRINT предназначены для записи значений переменных типа W в файлы. При этом формируются файлы данных в текстовом формате. Формирование имен файлов, формат записи данных в них и назначение операндов соответствуют описанным выше для оператора READ. Отличие оператора WRITE от PRINT заключается в том, что первый из них перед сохранением стирает содержимое указанного файла, а последний дописывает данные в конец файла.

Аргументы <операнд1> и <операнд2> функций READ, WRITE, PRINT имеют диапазон от 0 до 255, если задаются константой. Для того, чтобы задать это значение в больших диапазонах, необходимо использовать дополнительную переменную.

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

Этот оператор позволяет обратиться к стандартным функциональным блокам, реализованным в языке Техно FBD.

Недоступными для вызова являются блоки из раздела Моделирование, блоки, содержавшие внутренние статические переменные (PID, интегратор и пр.), и блоки логических, арифметических и условных операций, реализованных в Техно IL.

Синтаксис:

CALL <имя блока> <номер блока> (arg_1, …, arg_N)

где

имя блока

- название блока, выводимое на функциональных кнопках диалога Меню FBD;

реализация

- номер использования блока в программе.;

arg_1,…, arg_N

- список аргументов. Количество аргументов в списке должно быть равно сумме функциональных входов и выходов блока. Первыми в списке записываются аргументы, связанные с входами блока.

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