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

^ AX0 MR2 AY0 EQ LE AC AX1 MR1 AY1 NE NEG NOT AC AR MR0 AF GT POS MV SR1 GE AV NOT MV
SR0 LT NOT AV NOT CE

Допустимые константы: 0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32767, -2, -3, -5, -9, -17, -33, -65, - 129, -257, -513, -1025, -2049, -4097, -8193, -16385, -32768.


^ Примеры: IF EQ AR = AX0 + AY0 + C;

AR = AR + 512;


Описание: Если команда выполняется (условие отсутствует или ве­р­нуло TRUE), то процессор производит сложение первого операнда источника со вторым операндом источником, а также битом АС, если в команде присутствует символ С. Результат сохраняется в регистре назначения. Операнды и константа содержатся в регистрах, которые определены в команде.

Операция xop + constant не может использоваться в многофункциональных командах.


^ Флаги состояния:

ASTAT:

7

6

5

4

3

2

1

0




SS

MV

AQ

AS

AC

AV

AN

AZ




-

-

-

-

*

*

*

*

AZ – устанавливается, если результат равен нулю и сбрасывается в противном случае. AN – устанавливается, если результат отрицательный и сбрасывается в противном случае. AV – устанавливается, если случилось арифметическое переполнение и сбрасывается в противном случае. AC – устанавливается, если есть перенос и сбрасывается в противном случае.


^ Б) ВЫЧИТАНИЕ X-Y/ВЫЧИТАНИЕ X-Y С ЗАЕМОМ

С

[IF cond]

AR

= xop

- yop

;




AF




- yop + C – 1













+ C – 1













- constant













- constant + C - 1






интаксис:


Допустимые: регистры xop, регистры yop, условия cond и константы см. п. 1.17.5.А.


Пример: IF GE AR = AX0 – AY0;


Описание: Если команда выполняется (условие отсутствует или ве­р­нуло TRUE), то процессор производит вычитание второго операнда источника из первого операнда источника, а также прибавляет АС – 1, если в команде присутствует терм С – 1. Результат сохраняется в регистре назначения. Терм (С – 1) позволяет поддерживать операцию заема при вычитании чисел длиной более 16 бит. Операнды и константа содержатся в регистрах, которые определены в команде.


Операция xop - constant не может использоваться в многофункциональных командах.


Флаги состояния: см. п. 1.17.5.А.


В) ВЫЧИТАНИЕ Y-X/ВЫЧИТАНИЕ Y-X С ЗАЕМОМ


[IF cond]

AR

=

yop -

xop




;




AF







xop + C – 1
















- xop + C – 1
















- xop + constant
















- xop + constant + C – 1












Синтаксис:


Допустимые: регистры xop, регистры yop, условия cond и константы см. п. 1.17.5.А.


Пример: IF GT AR = AY0 – AX0 + C – 1;


Описание: Если команда выполняется (условие отсутствует или ве­р­нуло TRUE), то процессор производит вычитание второго операнда источника из первого операнда источника, а также прибавляет АС – 1, если в команде присутствует терм С – 1. Результат сохраняется в регистре назначения. Терм (С – 1) позволяет поддерживать операцию заема при вычитании чисел длиной более 16 бит. Операнды и константа содержатся в регистрах, которые определены в команде.


Операция xop - constant не может использоваться в многофункциональных командах.


Флаги состояния: см. п. 1.17.5.А.


Г) AND, OR, XOR


[IF cond]

AR

= xop

AND




yop

;




AF




OR




constant













XOR















Синтаксис:


Допустимые: регистры xop, регистры yop, условия cond и константы см. п. 1.17.5.А.


Примеры: IF POS AR = MR0 AND 8192;

AR = AX0 XOR AY0;


Описание: Если команда выполняется (условие отсутствует или ве­р­нуло TRUE), то процессор производит побитную логическую операцию И/ИЛИ/ИСКЛЮЧАЮЩЕЕ ИЛИ между первым операндом источником и вторым операндом источником. Результат сохраняется в регистре назначения. Операнды и константа содержатся в регистрах, которые определены в команде.


Операция xop AND/OR/XOR constant не может использоваться в многофункциональных командах.


^ Флаги состояния:

ASTAT:

7

6

5

4

3

2

1

0




SS

MV

AQ

AS

AC

AV

AN

AZ




-

-

-

-

0

0

*

*

AZ – устанавливается, если результат равен нулю и сбрасывается в противном случае. AN – устанавливается, если результат отрицательный и сбрасывается в противном случае. AV – всегда сбрасывается. AC –всегда сбрасывается.


^ Д) ПРОВЕРКА БИТА, УСТАНОВКА БИТА, ОЧИСТКА БИТА, ИНВЕРСИЯ БИТА


[IF cond]

AR

=

TSTBIT n OF xop

;




AF




SETBIT n OF xop













CLRBIT n OF xop













TGLBIT n OF xop









Синтаксис:


Допустимые: регистры xop и условия cond см. п. 1.17.5.А.

Допустимые значения n: 0 – 15.


Примеры: IF LE AF = TSTBIT 5 OF AR;

AR = TGLBIT 13 OF AX0;


Описание: Если команда выполняется (условие отсутствует или ве­р­нуло TRUE), то процессор производит следующее:

Перечисленные команды не могут выполняться в многофункциональном режиме.


Следующий пример показывает, как произвести переход на метку set, если установлен пятый бит AR.

AF = TSTBIT 5 OF AR;

IF NE JUMP set


Флаги состояния: см. п. 1.17.5.А.


Е) ПЕРЕСЫЛКА/ОЧИСТКА


[IF cond]

AR

= PASS

xop

;




AF




yop













constant









Синтаксис:


Допустимые: регистры xop, регистры yop и условия cond см. п. 1.17.5.А.

Допустимые константы: -1, 0, 1

2, 3, 4, 5, 7, 8, 9, 15, 16, 17, 31, 32, 33, 63, 64, 65, 127, 128, 129, 255, 256, 257, 511, 512, 513, 1023, 1024, 1025, 2047, 2048, 2049, 4095, 4096, 4097, 8191, 8192, 8193, 16383, 16384, 16385, 32766, 32767

-2, -3, -4, -5, -6, -8, -9, -10, -16, -17, -18, -32, -33, -34, -64, -65, -66, -128, -129, -130, -256, -257, -258, -512, -513, -514, -1024, -1025, -1026, -2048, -2049, -2050, -4096, -4097, -4098, -8192, -8193, -8194, -16384, -16385, -16386, -32767, -32768


Примеры: IF GE AR = PASS AY0; {пересылка содержимого AY0 в AR}

AR = PASS 0; {очистка AR}

AR = PASS 8191; {загрузка AR константой 8191}


Описание: Если команда выполняется (условие отсутствует или ве­р­нуло TRUE), то процессор производит пересылку содержимого регистра источника или константы в регистр приемник. Операнды и константа содержатся в регистрах, которые определены в команде.

В отличие от функционально идентичных команд пересылки данных (см. п. 1.17.4), команда PASS xop/yop/-1/0/1 устанавливает некоторые флаги (см. ниже). Если операндами команды являются константы, отличные от -1, 0, 1, то состояние флагов ASTAT не определено.

Команда PASS xop/yop/-1/0/1 может использоваться в многофункциональных командах. Константы, отличные от –1, 0, 1, не могут использоваться в многофункциональных командах.


Флаги состояния: см. п. 1.17.5.Г.


Ж) ОТРИЦАНИЕ ЗНАКА ОПЕРАНДА


[IF cond]

AR

= -

xop

;




AF




yop









Синтаксис:


Допустимые: регистры xop, регистры yop и условия cond см. п. 1.17.5.А.


Пример: IF LT AR = - AY0;


Описание: Если команда выполняется (условие отсутствует или ве­р­нуло TRUE), то процессор производит пересылку содержимого регистра источника в регистр приемник с инверсией знака операнда. Операнды содержатся в регистрах, которые определены в команде.


^ Флаги состояния:

ASTAT:

7

6

5

4

3

2

1

0




SS

MV

AQ

AS

AC

AV

AN

AZ




-

-

-

-

*

*

*

*

AZ – устанавливается, если результат равен нулю и сбрасывается в противном случае. AN – устанавливается, если результат отрицательный и сбрасывается в противном случае. AV – устанавливается, если операнд = 0х8000 и сбрасывается в противном случае. AC – устанавливается, если операнд равен нулю и сбрасывается в противном случае.


^ З) ИНВЕРСИЯ БИТОВ ОПЕРАНДА


[IF cond]

AR

= NOT

xop

;




AF




yop









Синтаксис:


Допустимые: регистры xop, регистры yop и условия cond см. п. 1.17.5.А.


Пример: IF NE AF = NOT AX0;


Описание: Если команда выполняется (условие отсутствует или ве­р­нуло TRUE), то процессор производит пересылку содержимого регистра источника в регистр приемник с инверсией всех битов операнда. Операнды содержатся в регистрах, которые определены в команде.


Флаги состояния: см. п. 1.17.5.Г.


И) АБСОЛЮТНОЕ ЗНАЧЕНИЕ


[IF cond]

AR

= ABS

xop

;




AF













[IF cond]

AR

=

yop + 1

;




AF















Синтаксис:


Допустимые: регистры xop и условия cond см. п. 1.17.5.А.


Пример: IF NEG AF = ABS AX0;


Описание: Если команда выполняется (условие отсутствует или ве­р­нуло TRUE), то процессор производит пересылку содержимого регистра источника в регистр приемник с формированием абсолютной величины операнда. Операнды содержатся в регистрах, которые определены в команде.


^ Флаги состояния:

ASTAT:

7

6

5

4

3

2

1

0




SS

MV

AQ

AS

AC

AV

AN

AZ




-

-

-

*

0

*

*

*

AZ – устанавливается, если результат равен нулю и сбрасывается в противном случае. AN – устанавливается, если хор = 0х8000 и сбрасывается в противном случае. AV – устанавливается, если хор = 0х8000 и сбрасывается в противном случае. AC – всегда сбрасывается. AS – устанавливается, если операнд источник отрицательный и сбрасывается в противном случае.


К) ИНКРЕМЕНТ


Синтаксис:


Допустимые: регистры yop и условия cond см. п. 1.17.5.А.


Пример: IF GT AF = AF + 1;


Описание: Если команда выполняется (условие отсутствует или ве­р­нуло TRUE), то процессор производит пересылку содержимого регистра источника в регистр приемник с увеличением на 1 значения операнда. Операнды содержатся в регистрах, которые определены в команде.


Флаги состояния: см. п. 1.17.5.А.


Л) ДЕКРЕМЕНТ


[IF cond]

AR

=

yop – 1

;




AF















Синтаксис:


Допустимые: регистры yop и условия cond см. п. 1.17.5.А.


Пример: IF EQ AR = AY1 – 1;


Описание: Если команда выполняется (условие отсутствует или ве­р­нуло TRUE), то процессор производит пересылку содержимого регистра источника в регистр приемник с уменьшением на 1 значения операнда. Операнды содержатся в регистрах, которые определены в команде.


Флаги состояния: см. п. 1.17.5.А.


М) ДЕЛЕНИЕ


Синтаксис: DIVS yop, xop

DIVQ xop


Допустимые:

регистры xop регистры yop

5445070062666736.html
5445224506219851.html
5445452868112429.html
5445564597681202.html
5445740844237431.html