Набор команд А
16. Прямая запись данных в память данных или память программы
Синтаксис: |
|
DM(Ia,Mb) |
= <data32> ; |
PM(Ic,Md) |
|
Функция:
Запись 32 разрядных данных в память данных или память программы при косвенной адресации. Данные размещаются в старших 32 разрядах 40 разрядного слова памяти. Младшие 8 разрядов обнуляются. Регистр I пост модифицируется и обновляется определенным значением регистра M. Замечания:
1.Универсальный регистр (ureg) может находиться не в том же самом DAG (т. е. DAG1 или DAG2), что и Ia/Mb или Ic/Md.
2.См. раздел 4.4.1 «Ограничения на передачу данных с использованием регистров DAG» в главе Передача данных.
Примеры:
DM(I4,M0)=19304;
PM(I14,M11)=count;(count–константа, определяемая пользователем)
Код операции:
I выбирает индексный регистр I, M выбирает регистр модификации М. G выбирает тип памяти (память данных или память программы). DATA определяет 32 разрядные данные.
А Набор команд
17. Прямая запись данных в универсальный регистр
Синтаксис:
ureg = <data32> ;
Функция:
Запись 32 разрядных данных в универсальный регистр. Если регистр 40 разрядный, данные размещаются в старших 32 разрядах, а в 8 младших записываются нули.
Примеры:
IMASK=0xFFFC0060;
M15=mod1; (mod1 – константа, определяемая пользователем)
Код операции:
UREG определяет номер универсального регистра. Поле DATA определяет значение данных.
Набор команд А
Группа IV. Прочие команды
18.Операции с битами системного регистра 484
19.Непосредственная модификация регистра I с битреверсией или без битреверсии 485
20.Помещение или извлечение данных из стека состояния и/или стеков цикла 487
21.Нет операции (NOP) 488
22.IDLE 489
23.IDLE16 490
24.CJUMP/RFRAME (команда, генерируемая компилятором) 491
А Набор команд
18. Операции с битами системного регистра
Синтаксис:
BIT SET sreg <data> ;
CLR
TGL
TST
XOR
Функция:
Команда операции с битами в системном регистре. При помощи этой команды можно устанавливать, очищать, переключать или проверять определенные биты, сравнивать по схеме «исключающее ИЛИ» (XOR) значение системного регистра с определенным значением данных. В первых четырех операциях значение данных является маской. Операция установки устанавливает в заданном системном регистре все биты, которые установлены в определенном значении данных. Операция очистки обнуляет все биты, которые установлены в значении данных. Операция переключения переключает все биты, которые установлены в значении данных. Операция проверки устанавливает флаг проверки бита (BTF в ASTAT), если все биты, которые установлены в значении данных, также установлены в системном регистре. Операция XOR устанавливает флаг проверки бита (BTF в ASTAT), если значение системного регистра такое же, как значение данных. Операции с битами данных в регистровом файле выполняются командами устройства сдвига. Подробнее о системных регистрах см. в
Приложении Е.
Примеры:
BIT SET MODE2 0x00000070;
BIT TST ASTAT 0x00002000;
Код операции:
BOP определяет одну из пяти операций с битами. SREG определяет системный регистр. DATA определяет значение данных.
Набор команд А
19. Непосредственная модификация регистра I с битреверсией или без битреверсии
Синтаксис:
a.MODIFY (Ia,<data32>)
(Ic,<data24>) ;
b.BITREV (Ia,<data32>)
(Ic,<data24>) ;
Функция:
Модификация и обновление определенного регистра I 32 разрядным (DAG1) или 24 разрядным (DAG2) значением данных. Команда BITREV добавляет 32 разрядное значение к содержимому регистра индекса DAG1 (или 24 разрядное значение к содержимому регистра индекса DAG2), переставляет биты результата в обратном порядке и записывает полученный результат в тот же самый индексный регистр.
Замечания: см. раздел 4.4.1 «Передача данных с использованием регистров генератора адреса данных» в главе Передача данных.
Примеры:
MODIFY (I4,304);
BITREV (I7,space); (space – определенная константа)
Код операции: (без битреверсии)
А Набор команд
Код операции: (с битреверсией)
G выбирает генератор адреса данных:
G=0 для DAG1
G=1 для DAG2
I выбирает индексный регистр I:
I=0 7 для I0 I7 (для DAG1)
I=0 7 для I8 I15 (для DAG2)
DATA определяет модификатор.
Набор команд А
20. Помещение или извлечение данных из стека состояния и/или стеков цикла
Синтаксис: |
|
|
|
|
|
|
|
|
|
|
PUSH |
LOOP, |
|
PUSH |
|
STS , |
|
PUSH |
|
PCSTK , FLUSH CACHE ; |
|
|
|
|
|
|
POP |
|
|
POP |
|
|
|
POP |
|
|
|
|
|
|
|
|
|
|
|
|
|
Функция:
Помещение или извлечение данных из стека адреса цикла или стека счетчика цикла, стека состояния и/или стека РС и/или очистка кэша команд. Любые из этих вариантов могут комбинироваться в одной команде.
При очистке кэша команд все биты истинности элементов кэша сбрасываются. Очистка кэша не имеет задержки. Кэш очищается в конце цикла.
Примеры:
PUSH LOOP, PUSH STS;
POP PCSTK, FLUSH CACHE;
Код операции:
LPU определяет помещение данных в стеки цикла. LPO определяет извлечение данных из стеков цикла. SPU определяет помещение данных в стек состояния. SPO определяет извлечение данных из стека состояния. PPU определяет помещение данных в стек PC. PPO снимает со стека PC. FC вызывает очистку кэша.
А Набор команд
21. Нет операции (NOP)
Синтаксис:
NOP;
Функция:
Нулевая операция; увеличивается только адрес выборки.
Код операции:
Набор команд А
22. IDLE
Синтаксис:
IDLE;
Функция:
Выполняется NOP и процессор переводится в состояние низкой потребляемой мощности. Процессор остается в этом состоянии, пока не придет сигнал прерывания.
После возврата из программы обработки прерывания выполнение программы начинается с команды, следующей за IDLE.
Код операции:
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 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
А Набор команд
23. IDLE16
Синтаксис:
IDLE16;
Функция:
Только в ADSP 21061 по команде IDLE16 выполняется NOP и процессор переводится в состояние пониженного потребления мощности. IDLE16 является вариантом команды IDLE с более низкой потребляемой мощностью. Эта команда останавливает процессор подобно команде IDLE; только в этом случае внутренняя тактовая частота равна 1/16 от CLKIN. Устройство ввода вывода ADSP 21061 продолжает функционировать, но все операции происходят в 16 раз медленнее. Все передачи внутренней памяти требуют 15 дополнительных циклов. Частоты тактовой и кадровой синхронизации последовательного порта, если их источником является ADSP 21061, делятся на 16 во время выполнения IDLE16. Точно так же все обращения хост процессора осуществляются в 16 раз медленнее. Процессор остается в состоянии пониженного потребления мощности, пока не произойдет прерывание.
Процессор выходит из состояния IDLE16, когда он определяет внешнее прерывание (по фронту) или прерывание таймера. Для получения информации о минимальной длительности импульса сигнала внешнего прерывания обратитесь к техническим характеристикам ADSP 21061. Период прерывания таймера для IDLE16 равен TPERIOD×TCK×16.
После распознавания прерывания процессору требуется два цикла для выхода из состояния пониженного потребления мощности. Выполнение программы начинается с команды, следующей за IDLE16.
Код операции: