А. В. Комаров цифровые сигнальные процессоры
Вид материала | Документы |
1.17.3. Условные обозначения 1.17.4. Команды пересылки данных |
- Архитектура процессов и ее оптимизация, 98.67kb.
- Обзор аппаратных и программных средств реализации параллельной обработки, 211.84kb.
- Темы Лекции Практика, 13.65kb.
- Лекция: графические процессоры и редакторы, 204.53kb.
- Реферат по дисциплине «Аппаратные средства» на тему: «Процессоры эвм», 333.09kb.
- ru/computers/classes html, 11.94kb.
- Методические указания му 2568 09 Издание официальное Москва 2009 Контроль численности, 527.33kb.
- Первая помощь при укусах насекомых и змей помощь при укусах комаров, 30.72kb.
- Фестиваль «Цифровые каникулы» – музей, образование, бизнес, 48.15kb.
- Неоднородный полупроводниковый носитель информации в переменном магнитном поле, 107.68kb.
Таблица 1.19
Условия, проверяемые оператором IF команды
Условие | Описание | Выполняется, когда |
EQ | Равно нулю | AZ = 1 |
NE | Не равно нулю | AZ = 0 |
LT | Меньше чем ноль | AN.XOR.AV = 1 |
GE | Больше чем или равно нулю | AN.XOR.AV = 0 |
LE | Меньше чем или равно нулю | (AN.XOR.AV).OR.AZ = 1 |
GT | Больше чем ноль | (AN.XOR.AV).OR.AZ = 0 |
AC | Перенос ALU | AC = 1 |
NOT AC | Нет переноса ALU | AC = 0 |
AV | Переполнение ALU | AV = 1 |
NOT AV | Нет переполнения ALU | AV = 0 |
MV | Переполнение МАС | MV = 1 |
NOT MV | Нет переполнения МАС | MV = 0 |
NEG | Отрицательный знак Х входа | AS = 1 |
POS | Положительный знак Х входа | AS = 0 |
NOT CE | Счетчик не исчерпан | |
FLAG_IN* | Сигнал FI установлен | На входе FI высокий уровень сигнала |
NOT FLAG_IN* | Сигнал FI сброшен | На входе FI низкий уровень сигнала |
Примечание: * - только для команд JUMP и CALL.
Примеры команд:
{Сложение содержимых AX0 и AF, если есть перенос ALU}
IF AC AR = AX0 + AF;
{Пересылка содержимого ячейки ПД с адресом 0х1234 в AX0}
AX0 = DM(0x1234);
{Многофункциональная команда МАС. Содержимое MX0 и MY0 перемножаются со знаком, результат суммируется с содержимым MR, после чего регистры MX0 и MY0 загружаются новыми значениями из ПД и ПП соответственно. И все это происходит за один машинный цикл. Запятые разделяют отдельные части многофункциональной команды.}
MR = MR + MX0 * MY0 (SS), MX0 = DM(I0, M0), MY0 = PM(I4, M5);
Процессор ADSP–2181 содержит следующие группы команд:
- Пересылочные;
- Вычислительные: ALU, MAC, SHIFTER;
- Управления потоком команд;
- Многофункциональные;
- Прочие.
1.17.2. Методы адресации
При описании методов адресации и команд приходится ссылаться на различные регистры процессора, причем, удобно использовать обобщенные обозначения этих регистров reg и dreg, см. табл. 1.20.
Таблица 1.20
Регистры процессора reg и dreg
Регистры reg | |
SB PX I0-I7, M0-M7, L0-L7 CNTR ASTAT, MSTAT, SSTAT IMASK, ICNTL, IFC TX0, TX1, RX0, RX1 | Регистры данных dreg |
AX0, AX1, AY0, AY1, AR MX0, MX1, MY0, MY1, MR0, MR1, MR2 SI, SE, SR0, SR1 |
Табл. 1.20 показывает, что к регистрам типа reg относятся почти все регистры процессора, которые не располагаются в ПД. К отсутствующим регистрам, в частности, относятся AF и MF. Регистры данных dreg являются подмножеством регистров reg. К ним относятся регистры данных вычислительных устройств, за одним исключением - SB.
Процессор поддерживает четыре метода адресации данных:
- Регистровый, когда месторасположения операнда определяется именем регистра. Пример: AX0 = SI;, где имя SI указывает на местоположение операнда-источника, а АХ0 – операнда-приемника;
- Непосредственный, когда операнд является частью команды. Пример: I0 = 0х1234;, где константа 0х1234 присваивается индексному регистру I0;
- Прямой, когда в команде указан адрес операнда. Например: AX0 = DM(0x1234);, где константа 0х1234 является адресом в ПД операнда-источника;
- Косвенный, когда адрес операнда находится в одном из индексных регистров. Пример: AX0 = DM(I1, M1);, где адрес операнда-источника содержится в индексном регистре I1. После пересылки этот регистр инкрементируется на величину содержимого М1.
Процессор также поддерживает два метода адресации переходов:
- Прямой, когда в команде явно указан адрес перехода. Например:
IF EQ JUMP zero;, где zero является меткой и при компиляции заменяется соответствующим адресом в ПП;
- Косвенный, когда адрес операнда находится в одном из индексных регистров, предназначенных для адресации ПП (I4-I7). Пример: IF FLAG_IN JUMP (I4);, где адрес перехода содержится в индексном регистре I4.
1.17.3. Условные обозначения
При описании команд будут использоваться следующие соглашения о их записи:
Квадратные скобки [ ] Отмечают необязательную часть команды
Параллельные линии | | Содержат список операндов, из которого может быть выбран только один операнд
ПРОПИСНЫЕ БУКВЫ Прописные буквы обозначают литерал. К литералам относятся имена команд (например, ADD), имена регистров (например, АХ0) или служебная информация (например, (SS) в командах умножения, см. п. 1.17.1). Литералы должны писаться так, как они приведены в описании команды
Операнды Обобщенные операнды некоторых команд могут писаться строчными буквами. В ассемблерной программе могут иметь различное значение. Например, в качестве yop могут выступать имена следующих регистров AY0, AY1 или AF
Обозначает значение непосредственного данного. Может быть не только числом, но и именем адресной метки или именем переменной/буфера, перед которой должны стоять символы ‘%’ или ‘’
Непосредственные значения
Для отражения состояния флагов ASTAT используются следующие обозначения:
* показывает, что бит изменен выполненной командой;
- показывает, что бит не зависит от выполненной командой;
0, 1 показывает, что бит безусловно сбрасывается или устанавливается выполненной командой.
1.17.4. Команды пересылки данных
А) ПЕРЕСЫЛКА РЕГИСТР – РЕГИСТР
Синтаксис: reg = reg;
Допустимые регистры: