Чтение онлайн

на главную - закладки

Жанры

Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++

Вальпа Олег Дмитриевич

Шрифт:

В зависимости от типа решаемой задачи программист сам определяет, какой именно формат лучше использовать.

Глава 13. Система команд

В этой главе начинается изложение системы команд сигнального процессора.

Сигнальные процессоры семейства ADSP-21XX используют единую систему команд для совместимости с устройствами с более высокой интеграцией. Процессоры ADSP-2181 имеют ряд дополнительных команд. Каждая команда может быть выполнена в процессоре за один такт. Кроме того, система команд процессора позволяет выполнять за один такт многофункциональные команды. Как было сказано ранее, язык ассемблер семейства ADSP-21XX использует высокоуровневый алгебраический синтаксис записи команд, что облегчает их понимание и запоминание. Операнды источника и приемника команды явно присутствуют в ее записи в виде мнемоники. Мнемоника основных регистров процессора с описанием их назначения приводится в табл. 13.1.

Таблица 13.1 Мнемоника основных регистров процессора с описанием их назначения

Мнемоника Определение
AX0, AX1, AY0, AY1 Входные
регистры АЛУ
AR Регистр результата АЛУ
AF Регистр обратной связи АЛУ
MX0, MX1, MY0, MY1 Входные регистры умножителя MAC
MR0, MR1, MR2 Регистры результата умножителя
MF Регистр обратной связи умножителя
SI Входной регистр устройства сдвига Shifter
SE Регистр экспоненты устройства сдвига
SR0, SR1 Регистры результата устройства сдвига
SB Регистр блочного сдвига (используется в блочных операциях с плавающей точкой)
PX Регистр шинного обмена памяти программ PM с памятью данных DM
I0–I7 Индексные регистры генераторов адреса DAG
M0–M7 Регистры модификации DAG
L0–L7 Регистры длины DAG (для циклических буферов)
PC Программный счетчик
CNTR Счетчик циклов
ASTAT Регистр арифметического статуса
MSTAT Регистр статуса режима
SSTAT Регистр статуса стека
IMASK Регистр маски прерываний
ICNTL Регистр режимов управления прерываниями
RX0, RX1 Регистры приема данных последовательных портов SPORT
TX0, TX1 Регистры передачи данных последовательных портов SPORT

Набор команд ADSP-2181 совместим вверх с набором команд ADSP-21XX, поэтому, программы, написанные для ADSP-21XX, могут выполняться на ADSP-2181 с минимальными изменениями. Процессор ADSP-2181 имеет ряд дополнительных команд. Каждая команда может быть выполнена отдельно в своем такте. Кроме того, система команд позволяет выполнять за один такт процессора многофункциональные команды.

Язык ассемблера позволяет использовать в командах арифметические или логические выражения. Список этих выражений и выполняемых с их помощью действий приведен в табл. 13.2.

Таблица 13.2 Список арифметических или логических выражений и выполняемых с их помощью действий

Выражение Действие
= Присвоение
+ Сложение
Вычитание
* Умножение
AND Логическое «И»
OR Логическое «ИЛИ»
NOT Логическое отрицание
XOR Исключающее «ИЛИ»
PASS Пересылка
ABS Абсолютное значение

Ниже приведены примеры записи некоторых команд языка ассемблера ADSP-21XX с объяснением их назначения.

DM(var1) = AX0;

Эта команда, знакомая читателям из предыдущих примеров программ, присваивает (записывает) значение регистра AX0 переменной var1, хранящейся в памяти данных.

MR = MR + MX1*MY1;

Данная команда выполняет операцию умножения и сложения. Он умножает входные значения из регистров MX1 и MY1, складывает результат умножения с текущим содержимым регистра MR (результат предыдущего умножения), а затем записывает результат в регистр MR.

При рассмотрении системы команд мы будем пользоваться условными обозначениями, приведенными в табл. 13.3. Эти обозначения позволяют сделать описание команд компактным.

Таблица 13.3 Условные обозначения системы команд

Обозначение Описание
I0–I7 Индексные регистры DAG для косвенной адресации
M0–M7 Регистры модификации DAG для косвенной адресации
L0–L7 Регистры длины DAG для циклических буферов
<data> Непосредственное значение данных
<addr> Непосредственное значение адреса (абсолютный адрес или программная метка)
<exp> Порядок (значение
сдвига) в командах непосредственного сдвига (8-разрядное знаковое число)
cond Код условия в условных командах
term Код условия выхода из цикла DO UNTIL
dreg Регистры данных (АЛУ, умножителя-накопителя или устройства сдвига)
reg Любой регистр (включая регистры данных «dreg»)
; Точка с запятой, разделитель команд
, Запятая, разделитель нескольких операций в одной команде
[] Квадратные скобки, содержащие дополнительные, необязательные части команд
[, …] Запись нескольких операций или команд в любом порядке, разделенных запятыми
|опция1| |опция2| |опция3| Список опций (в команде выбирается одна из опций)
xop Операнд «x»
yop Операнд «y»
constant Операнд-константа

В табл. 13.4 приведен список регистров, допустимых к использованию в командах пересылки и многофункциональных командах.

Таблица 13.4 Список регистров допустимых к использованию в командах пересылки и многофункциональных командах

Регистр Примечание
Регистры данных <dreg>
AX0, АХ1, AY0, AY1
AR
MX0, МХ1, MY0, MY1
MR0, MR1, MR2
SI, SE, SR0, SR1
Остальные регистры <reg>
I0, I1, I2, I3, I4, I5, I6, I7
M0, M1, M2, M3, M4, M5, M6, M7
L0, L1, L2, L3, L4, L5, L6, L7
TX0, TX1, RX0, RX1
SB, PX
ASTAT, MSTAT
SSTAT Только чтение
IMASK, ICNTL
IFC Только запись
CNTR
OWRCNTR Только запись

Следует обратить внимание на то, что регистры <dreg> являются подмножеством регистров <reg>, поэтому их можно применять в командах, где используется условное сокращение <reg>.

Команда сложить или сложить с переносом, записанная с применением приведенных выше условных сокращений, будет выглядеть следующим образом:

[IF cond] |AR| = xop + | yop |;

|AF| | C |

| yop + C |

| constant |

Она означает, что если условие cond предыдущей команды выполняется, то в регистр AR или AF будет занесен результат сложения операнда xop с операндом yop или с переносом или с константой. Разрешенные операнды xop, yop и константы constant указываются для группы команд индивидуально, поскольку они не всегда могут быть произвольными. Например, для команд АЛУ разрешено использовать в качестве операнда xop регистры; AX0, АХ1, AR, MR0, MR1, MR2, SR0, SR1. В качестве операнда yop допускается использование регистров: AY0, AY1 и AF. Причем команда DIVS не может использовать регистр AY0.

Коды условий cond с описанием их назначения приведены в табл. 13.5.

Таблица 13.5 Коды условий cond с описанием их назначения

Код условия cond оператора IF Описание
EQ Равно нулю
NE He равно нулю
LT Меньше нуля
GE Больше или равно нулю
LE Меньше или равно нулю
GT Больше нуля
AC Перенос АЛУ
NOT AC Нет переноса АЛУ
AV Переполнение АЛУ
NOT AV Нет переполнения АЛУ
MV Переполнение умножителя
NOT MV Нет переполнения умножителя
NEG Входной операнд xop отрицателен
POS Входной операнд xop положителен
NOT CE Счетчик циклов не пуст
FLAG_IN* Вывод FI = 1
NOT FLAG_IN* Вывод FI = 0
Поделиться:
Популярные книги

Моя на одну ночь

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
5.50
рейтинг книги
Моя на одну ночь

Черный Маг Императора 8

Герда Александр
8. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 8

Измена. Отбор для предателя

Лаврова Алиса
1. Отбор для предателя
Фантастика:
фэнтези
5.00
рейтинг книги
Измена. Отбор для предателя

Кодекс Крови. Книга II

Борзых М.
2. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга II

Шаг в бездну

Муравьёв Константин Николаевич
3. Перешагнуть пропасть
Фантастика:
фэнтези
космическая фантастика
7.89
рейтинг книги
Шаг в бездну

Часовая битва

Щерба Наталья Васильевна
6. Часодеи
Детские:
детская фантастика
9.38
рейтинг книги
Часовая битва

Вечная Война. Книга II

Винокуров Юрий
2. Вечная война.
Фантастика:
юмористическая фантастика
космическая фантастика
8.37
рейтинг книги
Вечная Война. Книга II

Хроники странного королевства. Вторжение. (Дилогия)

Панкеева Оксана Петровна
110. В одном томе
Фантастика:
фэнтези
9.38
рейтинг книги
Хроники странного королевства. Вторжение. (Дилогия)

Часовой ключ

Щерба Наталья Васильевна
1. Часодеи
Фантастика:
фэнтези
9.36
рейтинг книги
Часовой ключ

Инвестиго, из медика в маги

Рэд Илья
1. Инвестиго
Фантастика:
фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Инвестиго, из медика в маги

Кротовский, может, хватит?

Парсиев Дмитрий
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Кротовский, может, хватит?

Драконий подарок

Суббота Светлана
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Драконий подарок

Очешуеть! Я - жена дракона?!

Амеличева Елена
Фантастика:
юмористическая фантастика
5.43
рейтинг книги
Очешуеть! Я - жена дракона?!

Идеальный мир для Лекаря 9

Сапфир Олег
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Идеальный мир для Лекаря 9