А. В. Комаров цифровые сигнальные процессоры

Вид материалаДокументы
Ax0 mx0 si ax1 mx1 se ay0 my0 sr1 ay1 my1 sr0 ar mr2
Флаги состояния
Флаги состояния
Флаги состояния
Флаги состояния
Подобный материал:
1   ...   9   10   11   12   13   14   15   16   ...   26
AX0 MX0 SI

AX1 MX1 SE
AY0 MY0 SR1
AY1 MY1 SR0
AR MR2

MR1

MR0


Пример: AY0 = DM(I3, M1);

Описание: Команда чтения ПД с косвенным методом адресации пересылает содержимое ячейки ПД, адрес которой находится в индексном регистре Ix, в регистр назначение. После пересылки содержимое индексного регистра модифицируется (инкрементируется) содержимым регистра модификации Мх. Для линейной косвенной адресации необходимо, чтобы регистр длины Lх, соответствующий индексному регистру был обнулен. Операнд в регистр назначение загружается с правым выравниваем.


Флаги состояния: не изменяются.


Д) ЧТЕНИЕ ПП (КОСВЕННАЯ АДРЕСАЦИЯ)


dreg = PM (

I4

,

M4

);




I5




M5







I6




M6







I7




M7









Синтаксис:


Допустимые регистры dreg: см. п. 1.17.4.Г.


Пример: MX1 = PM(I6, M5);


Описание: Команда чтения ПП с косвенным методом адресации пересылает содержимое ячейки ПП, адрес которой находится в индексном регистре Ix, в регистр назначение. После пересылки содержимое индексного регистра модифицируется (инкрементируется) содержимым регистра модификации Мх. Для линейной косвенной адресации необходимо, чтобы регистр длины Lх, соответствующий индексному регистру был обнулен.

В регистр назначение пересылается содержимое битов 23-8 (самые значащие) указанной ячейки ПП. Причем, бит 8 источника попадает в бит 0 назначения (правое выравнивание). Если регистр назначение короче 16 битов, то лишние старшие разряды отбрасываются. Младший байт источника (биты 7-0) всегда загружаются в РХ регистр. Их можно игнорировать. Если они нужны, то могут быть прочитаны в следующем цикле.


Флаги состояния: не изменяются.


Е) ЗАПИСЬ В ПД (ПРЯМАЯ АДРЕСАЦИЯ)


Синтаксис: DM() = reg;


Допустимые регистры: см. п. 1.17.4.А за исключением регистров OWRCNTR и IFC, которые работают только на запись и поэтому не могут быть считаны.


Пример: DM(0x2345) = AR;


Описание: Команда записи ПД с прямым методом адресации пересылает содержимое регистра источника (справа от знака равенства) в ячейку ПД с адресом addr. Поскольку метод адресации – прямой, то адрес (заданный константой или меткой) запоминается в самой команде как 14-битное поле.

Операнд в ячейку памяти загружается с правым выравниваем. Это означает, что если длина регистра источника меньше 16 бит, то старшие разряды ячейки памяти заполняются либо нулем, либо знаком пересылаемого операнда.

Процессор поступает следующим образом. Если регистр источник беззнаковый (I0-I7, L0-L7, CNTR, PX, ASTAT, MSTAT, SSTAT, IMASK и ICNTL), то старшие биты ячейки памяти заполняются нулем, в противном случае (любой другой допустимый регистр кроме перечисленных) – знаком пересылаемого операнда.

При загрузке регистра MR1 знак загружаемого операнда распространяется в регистр MR2.


Флаги состояния: не изменяются.


Ж) ЗАПИСЬ В ПД (КОСВЕННАЯ АДРЕСАЦИЯ)


С

DM (




I0

,

M0




) =

dreg

;







I1




M1


















I2




M2



















I3




M3














































I4




M4



















I5




M5



















I6




M6



















I7




M7















интаксис
:


data: <константа>

'%' <имя переменной/буфера>

'' <имя переменной/буфера>

см., также, п. 1.17.4.Б


Допустимые регистры dreg: см. п. 1.17.4.Г.


Пример: DM(I2, M0) = MR1;


Описание: Команда записи в ПД с косвенным методом адресации пересылает содержимое регистра источника или непосредственное данное в ячейку ПД, адрес которой находится в индексном регистре Ix. После пересылки содержимое индексного регистра модифицируется (инкрементируется) содержимым регистра модификации Мх. Данным может быть константа, а также имя любой переменной/буфера, перед которой стоят операторы длины (%) или указателя (),см., также, п. 1.17.4.Б.

Для линейной косвенной адресации необходимо, чтобы регистр длины Lх, соответствующий индексному регистру был обнулен. Операнд в ячейку ПД загружается с правым выравниваем. Если длина регистра источника меньше 16 бит, то в ячейке ПД происходит распространение знака операнда влево.


Флаги состояния: не изменяются.


З) ЗАПИСЬ В ПП (КОСВЕННАЯ АДРЕСАЦИЯ)


PM (

I4

,

M4

) =

dreg;




I5




M5










I6




M6










I7




M7












Синтаксис:


data: <константа>

'%' <имя переменной/буфера>

'' <имя переменной/буфера>

см., также, п. 1.17.4.Б


Допустимые регистры dreg: см. п. 1.17.4.Г.


Пример: PM(I6, M5) = AR;


Описание: Команда записи в ПП с косвенным методом адресации пересылает содержимое регистра источника в ячейку ПП, адрес которой находится в индексном регистре Ix. После пересылки содержимое индексного регистра модифицируется (инкрементируется) содержимым регистра модификации Мх. Для линейной косвенной адресации необходимо, чтобы регистр длины Lх, соответствующий индексному регистру был обнулен.

Содержимое регистра источника загружается в старшие 16 бит ячейки ПП, т.е. бит 0 операнда загружается в бит 8 ячейки памяти (правое выравнивание). Восемь младших бит ячейки памяти загружаются из регистра РХ. Если длина регистра источника меньше 16 бит, то в ячейке ПП происходит распространение знака операнда влево.


Флаги состояния: не изменяются.


И) ЧТЕНИЕ/ЗАПИСЬ ПРОСТРАНСТВА ВВОДА/ВЫВОДА


Синтаксис: IO() = dreg; { запись в порт}

dreg = IO(); {чтение порта}


- 11 – битный прямой адрес от 0 до 2047


Допустимые регистры dreg: см. п. 1.17.4.Г.


Описание: Команды записи/чтения пространства ввода/вывода используются для доступа к пространству памяти ввода/вывода. Только эти команды формируют сигнал IOMS# (см. п. 1.1).


Флаги состояния: не изменяются.


1.17.5. Команды ALU


А) СЛОЖЕНИЕ/СЛОЖЕНИЕ С ПЕРЕНОСОМ


С

[IF cond]

AR

= xop

+ yop

;




AF




+ C













+ yop + C













+ constant













+ constant + C






интаксис
:


Допустимые:

регистры xop регистры yop условия cond