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

Регистры.

Ячейка памяти, служащая для хранения чисел. Обозначается R[i].НапримерR[1] = 1, число 1 записано в регистр 1.

       
           
           
         

 

Доступно 200 регистров (количество может быть увеличено)

 

Возможна прямая и косвенная адресации регистра.

При прямой адресации индекс регистра задается как номер - R[2] = 5 В данном случае инструкция присваивает регистру номер 2 значение 5, при этом старое значение регистра будет удалено.

При косвенной адресации индекс регистру задается не как номер, а косвенно, с помощью другого регистра т.е. R[R[3]] = 5. В данном случае инструкция содержит внутренний регистр R[3] и внешний регистр R[R[3]]. Если, например значение регистра R[3] равно 2, внешний регистр будет адресован с индексом 2 - (R[2] = 5).

Возможны следующие арифметические операции:

R[…] = …+… подсчет (суммирование) || R[1]=3+1.3 // R[1]=4.3

R[…] = …-… вычитание || R[1]=R[1]-1.8 // R[1]=2.5

R[…] = …*… умножение || R[1]=R[1]*2 // R[1]=5

R[…] = …/… деление || R[1]=R[1]/0.5 // R[1]=10

R[…] = …DIV… целочисленное деление || R[1]=R[1] DIV 3 // R[1]=3

R[…] = …MOD… остаток после деления || R[1]=R[1] MOD 2 // R[1]=5

Замечание. В рамках одной инструкции позволено несколько арифметических операций, но с ограничениями (не смешивать операции (АND/OR) использовать не более 5 операторов.

 

Добавление инструкции по работе с регистром

Для присвоения регистру значения (код R[1]=0), с помощью F1 (INST) вызвать окно (Рис.2).

Рис.2. МенюInstruction

ВыбратьпунктRegisters. Откроется окно (Рис. 3).

Рис.3. Меню регистров

В нем выбрать R[ ]=(…) (многоточия заменяются константой аналогично выбору системы координат(UFRAME_NUMили UTOOL_NUM) и написать R[1]= 1.

Для написания выражения (НапримерR[1]=R[1]+1)нажатьF1 (INST) вызвать окно, изображенное на рисунке 1. Выбрать меню Registers и откроется окно (Рис. 4).

Рис.4. Меню шаблонов

В нем выбрать шаблон выражения в котором заменить многоточия на нужные выражения.

 

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

Для создания циклов и ветвлений программы используются операторы безусловного перехода (JMP_LBL). Вид инструкции:

JMP_LBL[i], где i – номер метки, в которую необходимо осуществить переход.

LBL[i] – инструкция описывающая метку, i – номер метки.

 

Пример 1:

Рассмотрим пример использования регистра в качестве счетчика, совместно с оператором безусловного перехода.

Пусть имеется программа

1: JP[1] 100% FINE

2: J P[2] 100% FINE

3: JP[3] 100% FINE

[END]

Добавим в программу следующие операторы

В данном примере –R[1] – регистр выступающий в качестве счетчика. Начальное значение регистра ноль. Инструкция JMP_LBL[1] (безусловный переход) – переводит выполнение программы в метку 1 (строка 2). Таким образом блок кода реализующий обход трех точек (строки 3, 4, 5) будет выполняться бесконечное количество раз. Причем в регистре номер 1 будет содержаться число выполненных итераций.
1: R[1] = 0

2: LBL[1]

3: J P[1] 100% FINE

4: J P[2] 100% FINE

5: J P[3] 100% FINE

6: R[1] = R[1] + 1

7: JMP_LBL[1]

[END]