Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Программа на IL выполняется подряд, сверху вниз. Для изменения порядка выполнения и организации циклов применяется переход на метку. Переход на метку может быть безусловным JMP - выполняется всегда, независимо от чего-либо. Условный переход JMPC выполняется только при значении аккумулятора ИСТИНА. Переход можно выполнять как вверх, так и вниз. Метки являются локальными, другими словами, переход на метку в другом POU не допускается.
Переходы нужно организовывать достаточно аккуратно, чтобы не получить бесконечный цикл:
LD 1
ST Counter
Loop1:
(*тело цикла*)
LD Counter
ADD 1I
ST Counter
LE 5
JMP Loop1
В примере показана реализация цикла на 5 повторений с одной очевидной ошибкой. Вместо безусловного перехода JMP должен быть JMPC.
В системах с интерпретатором IL или промежуточным кодированием время выполнения перехода оказывается зависимым от направления и расстояния.
Скобки
Последовательный порядок выполнения команд IL можно изменять при помощи скобок. Открывающая скобка ставится в инструкции после операции. Закрывающая скобка ставится в отдельной строке. Инструкции, заключенные в скобки, выполняются в первую очередь. Результат вычисления инструкций в скобках помещается в дополнительный аккумулятор, после чего выполняется команда, содержащая открывающую скобку. Например:
LD 5
MUL (2
SUB 1
)
ST y (*y = 5* (2-1) = 5*)
LD 5
MUL 2
SUB 1
ST y (*y = 5*2-1=9*)
Скобки могут быть вложенными. Каждое вложение требует организации некоего временного аккумулятора. Это вызывает неоднозначность при выходе из блока скобок командами JMP, RET, CAL и LD. Применять эти команды в скобках нельзя.
Дата публикования: 2015-04-10; Прочитано: 392 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!