Программирование переходов в Stl-программе
С помощью функций перехода (jump functions) можно прервать линейное выполнение программы и продолжить ее выполнение в другой точке. Такое разветвление программы может быть организовано или с проверкой выполнения определенного условия, или без проверки каких-нибудь условий. Соответственно, в программе должен использоваться или условный, или безусловный переход.
В STL используются следующие функции переходов:
JU метка Безусловный переход;
JC метка Переход, если RLO = "1";
JCN метка Переход, если RLO = "0";
JCB метка Переход, если RLO = "1", и сохранение RLO;
JNB метка Переход, если RLO = "0", и сохранение RLO;
JBI метка Переход, если BR = "1";
JNBI метка Переход, если BR = "0";
JZ метка Переход, если результат равняется "0";
JN метка Переход, если результат не равняется "0";
JP метка Переход, если результат больше "0";
JPZ метка Переход, если результат больше или равняется "0";
JM метка Переход, если результат меньше "0";
JMZ метка Переход, если результат меньше или равняется "0";
JUO метка Переход, если результат неверный;
JO метка Переход при переполнении (проверка бита OV);
JOS метка Переход при переполнении (проверка бита OS);
LOOP метка Переход циклический.
Инструкция для каждой функции перехода содержит оператор перехода и метку перехода. Оператор перехода определяет условие, которое проверяется, а метка показывает, в какой точке программы следует продолжать обработку программы в случае, когда условие для перехода выполняется.
Метка перехода может содержать до 4 символов алфавита и числового ряда, а также символ подчеркивания. Метка перехода не может начинаться из цифры. После метки перехода ставится двоеточие. Метка перехода указывает на выражение, которое должно обрабатываться после выполнения операции перехода.
Пример программирования с разветвлением:
L C 1; //Загрузить значение счетчика
L 50; //Загрузить условное значение
>I; //Программирование условия
JC M1; //Условный переход
… … //Продолжение программы при невыполнении условия
JU M2; //Безусловный переход
M1: … …//Метка продолжения программы при выполнении условия
M2: … …//Метка основной программы
В приведенном примере условием перехода является положительный результат операции сравнения RLO. При RLO = "1" выполняется переход к метке продолжения программы M1. При отрицательном результате операции сравнения (RLO = "0") переход к M1 не выполняется.
Переход может выполняться в любом направлении программы, однако только внутри блока. Метка перехода должна иметь уникальный идентификатор.
При программировании на языке STL идентификаторы меток хранятся в соответствующей части блока на носителях данных программатора PG. По этой причине изменения в программе блока, сделанные в CPU в интерактивном режиме, должны быть также выполнены и в программаторе.
Дата добавления: 2016-12-09; просмотров: 3453;