стра, необов'язкова умова, необов'язкова операція обчислення.
Синтаксис:
IF умова обчислення, MODIFY
(Ia, Mb) (Ic, Md)
Функція:
Оновлення певного регістра I значенням певного регістра М. Якщо операція обчислення визначена, вона виконується паралельно з доступом до даних. Якщо визначено умову, то воно впливає на виконання всієї команди. Зауваження: див. розділ 4.4.1 "Обмеження на передачу даних з використанням регістрів DAG " в розділі 4 Передача даних. Приклади : IF NOT FLAG2_IN R4 = R6 * R12 (SUF), MODIFY (110, M8); IF NOT LCE MODIFY (13, Ml);
Код операції: ( з доступом до даних)
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
00100
G
COND
I
М
22 21 20 19 18 17 16 15 14 13 1211 10 9 8 7 6 5 4 3 2 1 0
COMPUTE
COND визначає умову для перевірки. Якщо в команді не визначено ніякого умови, то COND є умовою TRUE, і команда виконується завжди. G вибирає DAG1 або DAG2.1 визначає індексний регістр, М - регістр модифікації. Поле COMPUTE визначає обчислювальну операцію, виконувану паралельно з доступом до даних. Якщо в команді не визначено ніякої операції обчислення, то це поле NOР. b>
Управління послідовністю виконання програми
Прямий (або відносно PC) перехід/виклик, необов'язкова умова
Функція:
Перехід чи виклик за певною адресою або за адресою щодо PC. Адресу щодо PC - Це 24-розрядне число у вигляді двійкового доповнення. Модифікатор команди DB вказує, що перехід затриманий; інакше - він не затриманий. Якщо модифікатор переривання циклу (LA) визначений для переходу, то дані витягуються з стеків циклу і стека PC при виконанні переходу. Модифікатор LA повинен використовуватися тільки у випадку, якщо перехід виконується за кордон циклу. Якщо циклу немає або адресу переходу знаходиться всередині циклу, то модифікатор LA не повинен використовуватися.
Модифікатор очищення переривання (CI) команди JUMP дозволяє повторно використовувати переривання під час його обробки. Зазвичай ADSP-2106x ігнорує і не фіксує переривання, яке відбувається повторно, коли програма його обробки вже виконується. Команда JUMP (CI) повинна розміщуватися всередині програми обробки переривання. JUMP (CI) очищає стан поточного переривання без виходу з програми обробки переривання, зводячи програму обробки переривання до стандартної підпрограмі - це дозволяє перериванню статися знову в результаті якої-небудь події або завдання в системі ADSP-2106x. Команда JUMP (CI) зводить програму обробки переривання до стандартної підпрограмі, обнулити відповідний біт в регістрі фіксування переривання (IRPTL) і регістрі покажчика маски переривання (IMASKP). Потім ADSP-2106x дозволяє переривання статися знову. При поверненні з підпрограми, в яку була зведена програма обробки переривання командою JUMP (CI), повинен використовуватися модифікатор (LR) команди RTS (у випадку, якщо переривання надходить протягом двох останніх команд циклу).
Приклади:
IF AV JUMP (PC, 0X00А4);
CALL init (DB); (init - Це програмна мітка)
JUMP (PC, 2) (DB, CI); (очищення поточного переривання
для повторного використання)
Код операції: ( для прямого переходу)
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24
000
00110
в
А
COND
J
CI
23
22
21
20
19
18
17
16
15
14 13 12
11
10
9
8
V
6
5
4
3
2
1
0
...