Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭиСХ_ADSP21xx_1-2ред.doc
Скачиваний:
13
Добавлен:
13.11.2019
Размер:
916 Кб
Скачать
☆
  1. Система команд

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

  • вычислительные команды АЛУ, умножителя и устройства сдвига;

  • команды пересылки данных;

  • команды управления последовательностью выполнения программы;

  • многофункциональные команды;

  • остальные.

Процессоры семейства ADSP-21xx могут выполнять за один цикл операции выборки данных и умножения с накоплением.

Базовый набор команд ADSP-21xx включает традиционные для микропроцессоров операции с блоками вычислителя, команды пересылки данных и инструкции управления.

    1. Команды алу

В рассматриваемых сигнальных процессорах ADSP-21хх АЛУ имеет два входа Х и Y. В дальнейшем соответствующие операнды будут обозначены как Х-операнд и Y-операнд, а приемник результата – R.

Список стандартных функций АЛУ:

R = X + Y − сложить операнды Х и Y;

R = X + Y +CI − сложить операнды Х и Y и бит переноса;

R = X ‑ Y − вычесть операнд Y из X;

R = X ‑ Y + CI – 1 − вычесть операнд Y из X с «заёмом» (единицы старшего разряда при вычитании);

R = Y ‑ X − вычесть X из операнда Y;

R = Y ‑ X +CI – 1 − вычесть X из операнда Y с «заёмом»;

R = ‑ X − инвертирование операнда X (в дополнительном коде);

R = ‑ Y − инвертирование операнда Y (в дополнительном коде);

R = Y+ 1 − инкрементирование операнда Y;

R = Y ‑ 1 − декрементирование операнда Y;

R = PASS X − пропустить операнд X для сохранения результата неизменным;

R = PASS Y − пропустить операнд Y для сохранения результата неизменным;

R = 0 (PASS 0) − обнуление результата;

R = ABS X − найти абсолютное значение операнда X;

R =X AND Y − логическое И над операндами Х и Y;

R = X OR Y − операция логического ИЛИ над операндами Х и Y;

R = X XOR Y − операция исключающего ИЛИ над операндами Х и Y;

R = NOT X − операция логического НЕ над операндом X (в дополнительном коде);

R = NOT Y − операция логического НЕ над операндом Y (в дополнительном коде).

Источники ввода данных в порты X, Y и направление вывода данных через порт R для АЛУ приведены в табл. 7.

Таблица 7

Источники ввода/вывода данных АЛУ

Источники ввода данных в порт X

Источники ввода данных в порт Y

Направление вывода данных через порт R

АХ0, АХ1

AY0, AY1

AR

AR

MR0, MR1, MR2

SR0, SR1

AF

AF

Для каждой команды возможно выполнение её по условию в следующем виде:

IF [условие] R = Х + Y;

IF [условие] является необязательным элементом команды и может использовать следующие флаги:

EQ − результат АЛУ = 0;

NE − результат АЛУ ≠ 0;

GT − результат АЛУ > 0;

GE − результат АЛУ ≥ 0;

LT − результат АЛУ < 0;

LE − результат АЛУ ≤ 0.

[Not] AV − (нет) переполнение АЛУ;

[Not] АС − (нет) перенос в АЛУ;

[Not] MV − (нет) переполнение умножителя;

[Not] CE − цикл не завершен;

NEG − отрицательный знак на входе Х АЛУ;

POS − положительный знак на входе Х АЛУ.

Кроме указанных команд, для реализации операции деления используются команды:

DIVS YОР, ХОР;

DIVQ ХОР.

Примеры команд АЛУ:

AR = AX0 + AY0;

AF = MR1 XOR AY1;

AR = AX0 ‑ AF;

IF GE AR = ‑ AR;

IF AV AR = АY1 + 1;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]