Блоки, изменяющие маршруты движения транзактов

Для изменения маршрутов движения транзактов используются блоки GATE O A,B; TEST O A,B,C; LOOP A,B и TRANSFER A,B,C,D

В поле операции блока GATE после идентификатора операции с пробелом в одну позицию записывается операнд О, который является логическим оператором, перечень которых приведен в лекции 3. В операнде А указывается идентификатор объекта аппаратной категории. Транзакт, вошедший в блок GATE, проверяет выполнение поставленного операндом О условия и если оно выполняется, то он не меняет маршрута своего движения, а переходит к следующему блоку. При невыполнении поставленного условия, транзакт переходит к метке, указанной в операнде В.

В поле операции блока TEST записывается операнд О, который является условным оператором, перечень которых приведен в лекции 3, но из них нельзя использовать операторы MIN и MAX. В операнде А указывается первый сравниваемый СЧА, в операнде В второй. Между ними действует операнд О и если поставленное в нём условие выполняется, то транзакт переходит к следующему блоку, а иначе к метке, которая указана в операнде С.

Блок LOOP предназначен для организации цикла. В операнде А блока записывается идентификатор параметра, в котором указывается сколько раз требуется повторить цикл. В операнде В указывается метка начала цикла. Отметим, что для организации цикла до его начала требуется задать количество повторений цикла в выбранном для этого параметре.

Блок TRANSFER имеет множество модификаций, одну из них мы уже применяли. Это безусловный переход транзакта. В этом режиме операнд А остается пустым, а после запятой в операнде В указывается метка, к которой передается транзакт. Наиболее употребляемые модификации блока TRANSFER будут рассмотрены в лекции 6.