Работа с регистрами. Оператор IF. Оператор LBL
Обозначается R[i] используется в качестве счетчика.
В каждый регистр записывается число. Например R[1] = 1, число 1 записано в регистр 1. Регистр
(количество может быть Увеличено)
Возможна прямая и косвенная адресации регистра.
При прямой адресации индекс регистра задается как номер - R[2] = 5 В данном случае инструкция присваивает регистру номер 2 значение 5, при этом старое значение регистра будет удалено.
При косвенной адресации индекс регистру задается не как номер, а косвенно, с помощью другого регистра т.е. R[R[3]] = 5. В данном случае инструкция содержит внутренний регистр R[3] и внешний регистр R[R[3]]. Если, например значение регистра R[3] равно 2, внешний регистр будет адресован с индексом 2 - (R[2] = 5).
Возможны следующие арифметические операции
R[…] = …+… подсчет (суммирование) R[…] = …-… вычитание R[…] = …*… умножение R[…] = …/… деление R[…] = …DIV… целочисленное деление R[…] = …MOD… остаток после деления.
Замечание. В рамках одной инструкции позволено несколько арифметических операций, но с ограничениями (не смешивать операции (АND/OR) использовать не более 5 операторов.
Инструкция IF – условный переход.
Инструкция LBL[x] - используется для определения цели при переходе программы.
Рассмотрим пример использования регистра в качестве счетчика. Пусть имеется программа
1: J P[1] 100% FINE 2: J P[2] 100% FINE 3: J P[3] 100% FINE [END]
Добавим в программу следующие операторы
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]
|