Xreferat.com » Рефераты по информатике и программированию » Система команд. Структура слова команд. Синтаксис команд. Группы команд

Система команд. Структура слова команд. Синтаксис команд. Группы команд

регистрового файла. DMI определяет регистр I, который поет-модифицируется и обновляется значением регистра М, определямого полем DMM. Поле COMPUTE определяет вычислительную операцию, выполняемую параллельно с доступом к данным. Если в команде не определено никакой операции вычисления, то это поле NOR

Возврат из подпрограммы или прерывания, необязательное условие, необязательная операция вычисления

Функция:

Возврат из подпрограммы (RTS) или возврат из программы обработки прерывания (RTI). Модификатор команды DB указывает, что переход задержанный; иначе - он незадержанный.

Команда возврата из подпрограммы заставляет процессор выполнить переход по адресу, сохраненному в вершине стека счетчика команд. Различие между RTS и RTI заключается в том, что команда RTI не только извлекает адрес возврата из стека счетчика команд, но также:

Система команд. Структура слова команд. Синтаксис команд. Группы команд1) извлекает содержимое стека состояния, если туда было помещено содержимое регистров состояния ASTAT и MODE1 (если было прерывание IRQ,_0, прерывание по таймеру или векторное прерывание VIRPT);

2) обнуляет соответствующий бит в регистрах фиксирования прерывания (IRPTL) и указателя маски прерывания (IMASKP).

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

Если незадержанный вызов используется как одна из трех последних команд в цикле, то с командой RTS должен применяться модификатор повторного входа в цикл (LR). Команда RTS (LR) гарантирует правильный повторный вход в цикл. Например, в цикле, организованном по счетчику, условия завершения цикла проверяется посредством уменьшения значения счетчика текущего цикла (CURLCNTR) в течение выполнения двух последних команд цикла. Команда RTS (LR) гарантирует правильный повторный вход в цикл, предотвращая декремент счетчика циклов (дважды для одной и той же итерации цикла).

При возвращении из подпрограммы, в которую была сведена программа обработки прерывания командой JUMP (CI), должен использоваться модификатор (LR) команды RTS (в случае, если прерывание поступает в течение двух последних команд цикла).

Примеры: RTI, R6=R5 XOR R1; IF NOT GT RTS (DB); IF SZ RTS, ELSE R0=LSHIFT Rl BY R15.

Код операции: (возврат из подпрограммы)


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 01010

COND
J Е L R

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


COMPUTE

Код операции: (возврат из программы обработки прерывания)


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 01011

COND
J Е

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


COMPUTE

COND определяет условие для проверки. Если в команде никакого условия не определено, то COND является условием TRUE, и возврат выполняется всегда. J определяет, задержан возврат или нет. Е определяет, используется или нет фраза ELSE. Поле COMPUTE определяет выполняемую вычислительную операцию. Если в команде не определено никакой операции вычисления, то это поле NO P. LR определяет, назначен или нет модификатор повторного входа в цикл.

Загрузка счетчика цикла, команда DO UNTIL LCE

Функция:

Инициализирует организованный по счетчику программный цикл. Счетчик цикла LCNTR загружается 16-разрядным непосредственным значением данных или значением из универсального регистра. Начальный адрес цикла помещается в стек PC. Адрес окончания цикла и условие окончания LCE помещаются в стек адреса цикла. Конечный адрес может быть меткой для абсолютного 24-разрядного адреса памяти программы или 24-разрядным адресом относительно PC в виде двоичного дополнения. LCNTR помещается в стек счетчика цикла и становится значением CURLCNTR. Цикл выполняется до тех пор, пока содержимое CURLCNTR не достигнет нуля.

Примеры:

LCNTR=100, DO fmax UNTIL LCE; (fmax - программная метка) LCNTR=R12, DO (PC,16) UNTIL LCE;

Код операции: (для загрузки счетчика цикла непосредственным значением данных)


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 01100 DATA

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

Код операции: (для загрузки счетчика цикла из универсального регистра)


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 01101 UREG

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


RELADDR

RELADDR определяет адрес конца цикла по отношению к адресу команды DO LOOP. (Абсолютный адрес тоже допускается; он преобразуется в эквивалентный относительный адрес ассемблером при кодировке) Счетчик цикла (LCNTR) загружается 16-разрядным значением DATA или содержимым регистра, определенным полем UREG.

<addr24> (PC,<reladdr24>) UNTIL условие окончания;

Функция:

Инициализирует организованный по счетчику программный цикл. Начальный адрес цикла помещается в стек PC. Адрес окончания цикла и условие окончания помещаются в стек цикла. Конечный адрес может быть меткой для абсолютного 24-разрядного адреса памяти программы или 24-разрядным адресом относительно PC в виде двоичного дополнения. Цикл повторяется до тех пор, пока не выполняется заданное условие окончания цикла.

Примеры:

DO end UNTIL FLAG IN; (end - программная метка) DO (PC, 7) UNTIL AC;

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


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 OHIO
TERM

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

RELADDR определяет адрес конца цикла по отношению к адресу команды DO LOOP. (Абсолютный адрес тоже допускается; он преобразуется в эквивалентный относительный адрес ассемблером при кодировке) TERM определяет условие окончания цикла.

Команды непосредственной пересылки данных


Пересылка данных между памятью данных или памятью программы и универсальным регистром, прямая адресация, непосредственное значение адреса

Функция:

Обращения между памятью данных или памятью программы и универсальным регистром при прямой адресации. Полный адрес памяти данных или памяти программы определяется в программе. Адреса памяти данных 32-разрядные (от О до 232-1). Адреса памяти программы 24-разрядные (от 0 до 224-1).

Примеры:

DM (temp) =MODE1; (temp - программная метка) DMWAIT=PM (0x489060);

Код операции:


47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32

000 100 G D UREG

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0


D выбирает тип обращения (запись или чтение). G выбирает тип памяти (память данных или память программы). UREG определяет номер универсального регистра. ADDR содержит непосредственное значение адреса.

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

Функция:

Обращения между памятью данных или памятью программы и универсальным регистром при косвенной адресации с использованием регистров I. Регистр I пред-модифицируется непосредственным значением, заданным в команде. Содержимое регистра I не обновляется. Модификаторы адреса памяти данных 32-разрядные (от 0 до 232-1). Модификаторы адреса памяти программы 24-разрядные (от 0 до 224-1). Замечания:

Универсальный регистр (ureg) может находиться не в том же самом DAG (т.е.

DAG1 или DAG2), что и la/Mb или Ic/Md.

См. раздел 4.4.1 "Ограничения на передачу данных с использованием регистров DAG" в главе 4 Передача данных.

Примеры:

DM (24,15) =TCOUNT; USTATl=PM (offs, 113);

("offs" - определенная константа)

Код операции:


47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32

101 G I D UREG

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0


D выбирает тип доступа (запись или чтение). G выбирает тип памяти (данные или программа). UREG определяет номер универсального регистра. Поле I определяет индексный регистр I. Поле DATA определяет значение модификации для регистра I.

Прямая запись данных в память данных или память программы

Синтаксис:

DM (Ia,Mb) =<data32>; PM (Ic,Md)

Функция:

Запись 32-разрядных данных в память данных или память программы при косвенной адресации. Данные размещаются в старших 32 разрядах 40-разрядного слова памяти. Младшие 8 разрядов обнуляются. Регистр I поет-модифицируется и обновляется определенным значением регистра М. Замечания:

Универсальный регистр (ureg) может находиться не в том же самом DAG (т.е. DAG1 или DAG2), что и la/Mb или Ic/Md.

Примеры:

DM (I4,M0) =19304;

РМ (114,Mil) =count; (count-константа, определяемая пользователем)

Код операции:


47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32

100 1 I

м

G


31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0


I выбирает индексный регистр I, М выбирает регистр модификации М. G выбирает тип памяти (память данных или память программы). DATA определяет 32-разрядные данные.

Запись данных в универсальный регистр

Синтаксис:

ureg = <data32>;

Функция:

Запись 32-разрядных данных в универсальный регистр. Если регистр 40-разрядный, данные размещаются в старших 32 разрядах, а в 8 младших записываются нули.

Примеры:

IMASK=0xFFFC0060;

M15=modl; (modi - константа, определяемая пользователем)

Код операции:

47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32

000 01111 UREG

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0


DATA

UREG определяет номер универсального регистра. Поле DATA определяет значение данных.

Заключение


Набор команд процессоров семейства ADSP-21000 обеспечивает широкие возможности для их программирования. Многофункциональные команды позволяют выполнять вычисления параллельно с передачей данных, а также одновременные операции умножителя и ALU. Практически каждая команда может быть выполнена за один процессорный цикл. Алгебраический синтаксис, используемый ассемблером семейства ADSP-2106x, упрощает кодирование и читаемость. Удобный набор средств разработки облегчает программирование.


Список использованных источников


1. Остапенко А.Г., Лавлинский С.И., Сушков А.В. и др. Цифровые процессоры обработки сигналов. Справочник. М.: Радио и связь, 1994.264 с.

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: