Лекция: Переход на метку

Программа на 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. Применять эти команды в скобках нельзя.

 

еще рефераты
Еще работы по информатике