LOOP - Циклы.
Переменная циклов может быть 3
видов: адрес, данные чтения/записи и константа.
Кроме того может быть описан универсальный цикл,
без указания переменной, в этом случае доступ
осуществляется через счетчик (индекс) цикла I.
Универсальные циклы могут быть вложенными, во
внутреннем цикле непосредственно доступен
только счетчик внутреннего цикла. Для
универсальных циклов границы могут быть также
заданы через регистры. Для совместимости с
будущими версиями рекомендуется использовать
только универсальные циклы!
Константа должна быть задана до начала
цикла с помощью инструкции CONST Границы цикла
должны лежать в пределах:
0...32767 - для универсальных циклов
0...32767 - для циклов CONST
0...1023 - для циклов DATA
0...31 - для циклов ADR
При выполнении кода для универсальных циклов не
контролируется выход индексов за пределы
реального размера DATA, ADR и CONST.
Скобки "{","}" ограничивают
тело цикла.
(*) LOOP=(15,0) {DI=R0[I],...}
линия вывода DI поочередно принимает значения
бит 15..0 значения регистра R0. (*) LOOP=(7,0)
{DI=ADR[I],...} (*) LOOP=ADR(7,0) {DI=I,...} - старый вариант
линия вывода DI поочередно принимает значения бит
7..0 текущего значения адресного слова.
(*) LOOP=(0,15) {DATA[I]=DO,..} (*) LOOP=DATA(0,15) {I=DO,..} - старый
вариант поочередное считывание бит 0..15 слова
данных с линии ввода DO.
(*) R1=10H
LOOP=(5,0) {D=R1[I],..}
(*) CONST=10H
LOOP=CONST(5,0) {D=I,..} - старый вариант линия вывода D
поочередно принимает значения бит 5..0 константы
(10H)
(*) LOOP=(R1,R2) {R3[I]=DATA[I]}
Копирование битов от R1 до R2 адресного слова в
соответствующие биты регистра R3
(*) LOOP=(0,7){ P1=0,LOOP=(6,1){P1=0,P1=1} }
Вложенные циклы.