на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Система команд. Структура слова команд. Синтаксис команд. Группы команд
p align="left">Замечание: см. раздел 4.4.1 "Ограничения на передачу данных с использованием регистров DAG" в главе 4 Передача данных.

Примеры:

IF GT R2=R6 LSHIFT BY 30, DM (14,M4) =R0; IF NOT SZ R3=FEXT Rl BY 8: 4;

Код операции: (с доступом к данным)

47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23

100

0

I

м

COND

G

D

DATAEX

DREG

22 21 20 19 18 17 16 15 14 13 1211 10 9 8 7 6 5 4 3 2 1 0

0

SHIFTOP

DATA

RN

RX

Код операции: (без доступа к данным)

47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23

000

00010

COND

DATAEX

22 21 20 19 18 17 16 15 14 13 1211 10 9 8 7 6 5 4 3 2 1 0

0

SHIFTOP

DATA

RN

RX

COND определяет условие для проверки. Если в команде не определено никакого условия, то COND является условием TRUE, и команда выполняется всегда.

SHIFTOP определяет операцию устройства сдвига. Поле DATA определяет 8-разрядное непосредственное значение сдвига. Для операции устройства сдвига, требующей двух 6-разрядных чисел (значение сдвига и значение длины), поле DATAEX добавляет 4 старших разряда к полю DATA, образуя 12-разрядное непосредственное значение. Шесть младших разрядов являются значением сдвига, шесть старших - значением длины. Если определен доступ к памяти, то D выбирает тип доступа (чтение или запись). G выбирает память данных или память программы. DREG определяет регистр регистрового файла. I определяет индексный регистр I, который поет-модифицируется и обновляется значением регистра М, определяемым полем М. Поле COMPUTE определяет вычислительную операцию, выполняемую параллельно с доступом к данным. Если в команде не определено никакой операции вычисления, то это поле NOR. Модификация индексного регистра, необязательное условие, необязательная операция вычисления.

Синтаксис:

IF условие вычисление, MODIFY

(Ia,Mb) (Ic,Md)

Функция:

Обновление определенного регистра I значением определенного регистра М. Если операция вычисления определена, она выполняется параллельно с доступом к данным. Если определено условие, то оно влияет на выполнение всей команды. Замечание: см. раздел 4.4.1 "Ограничения на передачу данных с использованием регистров DAG" в главе 4 Передача данных. Примеры: IF NOT FLAG2_IN R4=R6*R12 (SUF), MODIFY (110,M8); IF NOT LCE MODIFY (13,Ml);

Код операции: (с доступом к данным)

47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23

000

00100

G

COND

I

М

22 21 20 19 18 17 16 15 14 13 1211 10 9 8 7 6 5 4 3 2 1 0

COMPUTE

COND определяет условие для проверки. Если в команде не определено никакого условия, то COND является условием TRUE, и команда выполняется всегда. G выбирает DAG1 или DAG2.1 определяет индексный регистр, М - регистр модификации. Поле COMPUTE определяет вычислительную операцию, выполняемую параллельно с доступом к данным. Если в команде не определено никакой операции вычисления, то это поле NOР.

Управление последовательностью выполнения программы

Прямой (или относительно PC) переход/вызов, необязательное условие

Функция:

Переход или вызов по определенному адресу или по адресу относительно PC. Адрес относительно PC - это 24-разрядное число в виде двоичного дополнения. Модификатор команды DB указывает, что переход задержанный; иначе - он не задержанный. Если модификатор прерывания цикла (LA) определен для перехода, то данные извлекаются из стеков цикла и стека PC при выполнении перехода. Модификатор LA должен использоваться только в случае, если переход выполняется за границу цикла. Если цикла нет или адрес перехода находится внутри цикла, то модификатор LA не должен использоваться.

Модификатор очистки прерывания (CI) команды JUMP позволяет повторно использовать прерывание во время его обработки. Обычно ADSP-2106x игнорирует и не фиксирует прерывание, которое происходит повторно, когда программа его обработки уже выполняется. Команда JUMP (CI) должна размещаться внутри программы обработки прерывания. JUMP (CI) очищает состояние текущего прерывания без выхода из программы обработки прерывания, сводя программу обработки прерывания к стандартной подпрограмме - это позволяет прерыванию произойти снова в результате какого-либо события или задачи в системе ADSP-2106x. Команда JUMP (CI) сводит программу обработки прерывания к стандартной подпрограмме, обнуляя соответствующий бит в регистре фиксирования прерывания (IRPTL) и регистре указателя маски прерывания (IMASKP). Затем ADSP-2106x позволяет прерыванию произойти снова. При возвращении из подпрограммы, в которую была сведена программа обработки прерывания командой JUMP (CI), должен использоваться модификатор (LR) команды RTS (в случае, если прерывание поступает в течение двух последних команд цикла).

Примеры:

IF AV JUMP (PC, 0X00А4);

CALL init (DB); (init - это программная метка)

JUMP (PC,2) (DB,CI); (очистка текущего прерывания

для повторного использования)

Код операции: (для прямого перехода)

47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24

000

00110

в

А

COND

J

CI

23

22

21

20

19

18

17

16

15

14 13 12

11

10

9

8

V

6

5

4

3

2

1

0

ADDR

Код операции: (для перехода относительно PC)

47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24

000

00111

в

А

COND

J

CI

23

22

21

20

19

18

17

16

15

14 13 12

11

10

9

8

7

6

5

4

3

2

1

0

RELADDR

COND определяет условие для проверки. Если в команде не определено никакого условия, то COND является условием TRUE, и команда выполняется всегда. В выбирает тип перехода - переход или вызов. J определяет, задержан переход или нет. Поле адреса ADDR определяет 24-разрядный адрес памяти программы. RELADDR - это 24-разрядное число в виде двоичного дополнения, которое прибавляется к текущему значению PC для генерации адреса перехода. Бит А активизирует прерывание цикла. CI активизирует очистку прерывания. (Для вызовов CI и А игнорируются)

Косвенный (или относительно PC) переход/вызов, необязательное условие, необязательная операция вычисления

Функция:

Переход или вызов по адресу, определяемому пред-модифицированным значением регистра I, или по адресу относительно PC. Адрес относительно PC - это 6-разрядное число в виде двоичного дополнения. Если регистр I определен, то он модифицируется определенным значением регистра М для генерации адреса перехода. На содержимое регистра I операция модификации не влияет.

Переход или вызов выполняется, если заданное условие верно. Если операция вычисления определена без ELSE, то она выполняется параллельно с вызовом или переходом. Если операция вычисления определена с ELSE, то она выполняется, только если заданное условие ложно. Заметим, что условие должно быть задано, если определена фраза ELSE вычисление.

Переход или вызов по определенному адресу или адресу относительно PC. Адрес относительно PC - это 24-разрядное число в виде двоичного дополнения. Модификатор команды DB указывает, что переход задержанный; иначе - он не задержанный. Если модификатор прерывания цикла (LA) определен для перехода, то данные извлекаются из стеков цикла и стека PC при выполнении перехода. Модификатор LA должен использоваться только в случае, если переход выполняется за границу цикла. Если цикла нет или адрес перехода находится внутри цикла, то модификатор LA не должен использоваться.

Модификатор очистки прерывания (CI) команды JUMP позволяет повторно использовать прерывание во время его обработки. Обычно ADSP-2106x игнорирует и не фиксирует прерывание, которое происходит повторно, когда программа его обработки уже выполняется. Команда JUMP (CI) должна размещаться внутри программы обработки прерывания. JUMP (CI) очищает состояние текущего прерывания без выхода из программы обработки прерывания, сводя программу обработки прерывания к стандартной подпрограмме - это позволяет прерыванию произойти снова в результате какого-либо события или задачи в системе ADSP-2106x. Команда JUMP (CI) сводит программу обработки прерывания к стандартной подпрограмме, обнуляя соответствующий бит в регистре фиксирования прерывания (IRPTL) и регистре указателя маски прерывания (IMASKP). Затем ADSP-2106x позволяет прерыванию произойти снова. При возвращении из подпрограммы, в которую была сведена программа обработки прерывания командой JUMP (CI), должен использоваться модификатор (LR) команды RTS (в случае, если прерывание поступает в течение двух последних команд цикла). (См. команду типа 11, возвращение из подпрограммы)

Примеры:

JUMP (M8,112), R6=R6-1; IF EQ CALL (PC,17), ELSE R6=R6-1;

Код операции: (для косвенного перехода)

47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23

000

01000

в

А

COND

PMI

РММ

J

Е

CI

Страницы: 1, 2, 3



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.