кового доповнення, яке додається до поточного значення PC для генерації адреси переходу. D вибирає тип доступу до пам'яті даних (читання і запис). DREG визначає регістр реєстрового файлу. DMI визначає регістр I, який співає-модифікується і оновлюється значенням регістра М, определямого полем DMM. Поле COMPUTE визначає обчислювальну операцію, виконувану паралельно з доступом до даних. Якщо в команді не визначено ніякої операції обчислень я, то це поле NOR
Повернення з підпрограми або переривання, необов'язкове умова, необов'язкова операція обчислення
Функція:
Повернення з підпрограми (RTS) або повернення з програми обробки переривання (RTI). Модифікатор команди DB вказує, що перехід затриманий; інакше - він неприборканий.
Команда повернення з підпрограми змушує процесор виконати перехід за адресою, збереженому в вершині стека лічильника команд. Різниця між RTS і RTI полягає в тому, що команда RTI не тільки витягує адресу повернення з стека лічильника команд, але також:
1) витягує вміст стека стану, якщо туди було поміщено вміст регістрів стану ASTAT і MODE1 (якщо було переривання IRQ, _ 0 , переривання по таймеру або векторне переривання VIRPT);
2) обнуляє відповідний біт в регістрах фіксування переривання (IRPTL) і покажчика маски переривання (IMASKP).
Повернення виконується, якщо умова визначено і вірно. Якщо операція обчислення визначена без ELSE, вона виконується паралельно з поверненням. Якщо операція обчислення визначена з ELSE, вона виконується тільки в тому випадку, якщо умова помилкова. Зауважте, що умова має бути визначено, якщо визначено фраза ELSE обчислення.
Якщо неприборканий виклик використовується як одна з трьох останніх команд в циклі, то з командою RTS повинен застосовуватися модифікатор повторного входу в цикл (LR). Команда RTS (LR) гарантує правильний повторний вхід в цикл. Наприклад, в циклі, організованому за лічильником, умови завершення циклу перевіряється за допомогою зменшення значення лічильника поточного циклу (CURLCNTR) протягом виконання двох останніх команд циклу. Команда RTS (LR) гарантує правильний повторний вхід в цикл, запобігаючи декремент лічильника циклів (двічі для однієї і тієї ж ітерації циклу).
При поверненні з підпрограми, в яку була зведена програма обробки переривання командою JUMP (CI), повинен використовуватися модифікатор (LR) команди RTS (у разі, якщо переривання надходить у Протягом двох останніх команд циклу).
Приклади : RTI, R6 = R5 XOR R1; IF NOT GT RTS (DB); IF SZ RTS, ELSE R0 = LSHIFT Rl BY R15. p> Код операції: ( повернення з підпрограми)
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23
000
01010
COND
J
Е
L R
22 21 20 19 18 17 16 15 14 13 1211 10 9 8 7 6 5 4 3 2 10
COMPUTE
Код операції: ( повернення з програми обробки переривання)
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23
000
01011
COND
J
Е
22 21 20 19 18 17 16 15 14 13 1211 10 9 8 7 6 5 4 3 2 10
COMPUTE
COND визначає умову для перевірки. Якщо в команді ніякого умови не визначено, то COND є умовою TRUE, і повернення виконується завжди. J визначає, затриманий повернення чи ні. Е визначає, використовується чи ні фраза ELSE. Поле COMPUTE визначає виконувану обчислювальну операцію. Якщо в команді не визначено ніякої операції обчислення, то це поле NO P. LR визначає, призначений чи ні модифікатор повторного входу в цикл.
Завантаження лічильника циклу, команда DO UNTIL LCE
Функція:
Ініціалізує організований за лічильником програмний цикл. Лічильник циклу LCNTR завантажується 16-розрядним безпосереднім значенням даних або значенням з універсального регістру. Початковий адресу циклу поміщається в стек PC. Адреса закінчення циклу і умова закінчення LCE поміщаються в стек адреси циклу. Кінцевий адреса може бути міткою для абсолютної 24-розрядної адреси пам'яті програми або 24-розрядною адресою щодо PC у вигляді двійкового доповнення. LCNTR поміщається в стек лічильника циклу і стає значенням CURLCNTR. Цикл виконується до тих пір, поки вміст CURLCNTR не досягне нуля.
Приклади:
LCNTR = 100,...