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

R=X*Y(формат) − умножение операндов Х и Y.

R=MR + X*Y(формат) − умножение операндов Х и Y и сложение результата с содержимым регистра MR.

R=MR ‑ X*Y(формат) − умножение операндов Х и Y и вычитание полученного результата из содержимого регистра MR.

R = 0 − обнуление результата регистра MR.

R=MR[(RND)] − округление результата.

Источники ввода данных и направление вывода данных умножителя приведены в табл. 8.

Таблица 8

Источники ввода/вывода данных умножителя-накопителя

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

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

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

МХ0, МХ1

MY0, MY1

MR(MR2, MR1, MR0)

AR

MR0, MR1, MR2

SR0, SR1

MF

MF

Форматы операндов при умножении:

SS − 2 знаковых операнда;

SU, US − 1 знаковый операнд;

UU – 2 беззнаковых операнда;

RND – округление результата.

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

IF [условие] R = Х * Y.

IF [условие] − является необязательным элементом команды.

Примеры команд умножителя накопителя:

MR = MX1 * МY0 (SS);

MF = AR * МY1 (SU);

MR = MR + AR * MY (SS);

MR = 0;

IF EQ MR = MX0 * МY0 (UU);

По умолчанию установлен режим умножителя дробных чисел. Установка режима умножения целых чисел осуществляется командой:

ENA M_MODE; − установка;

DIS M_MODE; − сброс.

Переполнение умножителя (в регистре ASTAT флаг MV = 1) происходит при изменении знакового бита во время накопления.

    1. Команды устройства сдвига

Команды, содержащие величину сдвига:

SR = [SR OR] ASHIFT хор <данные> (выравнивание);

SR = [SR OR] LSHIFT хор <данные> (выравнивание);

Команды, для которых сдвиг задан в регистре SE:

[IF условие] SR = [SR OR] ASHIFT хор (выравнивание);

[IF условие] SR = [SR OR] LSHIFT хор (выравнивание);

где IF условие − арифметическое условие,

хор = [SR0, SR1, MR2, MR1, SI, MR0, AR],

выравнивание − [HI, LO] − по старшему или по младшему слову SR,

данные − -32...32 − величина сдвига (влево ‑ вправо).

Арифметический сдвиг (ASHIFT) отличается от логического (LSHIFT) тем, что при сдвиге вправо происходит расширение знака вместо записи нулей.

Рассмотренные выше команды АЛУ, умножителя и устройства сдвига составляют самую многочисленную группу команд − команды вычислений. Ниже будут рассмотрены другие группы команд сигнальных процессоров ADSP-21xx.

    1. Команды пересылки данных

В группе команд пересылки данных можно выделить следующие разновидности:

Рг ←→ Рг (регистр-регистр);

Рг ←→ ПД (прямая/косвенная адресация);

Рг ←→ ПП (только косвенная адресация);

непосредственное значение → Рг;

непосредственное значение → ПД (только косвенная адресация).

Выделим отдельно команды работы с памятью данных (ПД) и памятью программ (ПП):

  • команды для ПД

dreg = DM (ix, mx);

DM (ix, mx) = dreg;

DM (ix, mx) = <данные>;

DM(<адрес>) = dreg;

dreg = DM(<адрес>);

  • команды для ПП

dreg = РM (iрx, mрx);

РM (iрx, mрx) = dreg;

где ix = [I0, I1, I2, I3],

mx = [M0, M1, M2, M3] − при использовании генератора адреса #1,

или ix = [I4, I5, I6, I7],

mx = [M4, M5, M6, M7] − при использовании генератора адреса #2,

dreg = [АХ0, АХ1, АY0, АY1, МХ0, МХ1, МY0, МY1,AR, MR0, MR1, MR2, SI, SE, SR0, SR1]

ipx = [I4, I5, I6, I7]

mpx = [М4, М5, М6, М7].

Примеры команд пересылки данных:

МХ0 = АY1;

АХ0 = DМ(0x3800);

АY0 = РМ(I4, М6);

SI = DM(0x2000);

DM(I3, M3) = 123;

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