Смекни!
smekni.com

Система команд. Структура слова команд. Синтаксис команд. Группы команд (стр. 1 из 4)

Федеральное агентство по образованию

Пензенский государственный университет

Кафедра "Информационной безопасности систем и технологий"

Реферат на тему

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

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

Дисциплина: ЦиМПТ

Группа:

Студент:

Пенза 2006 г.

Содержание

Введение

Команды вычисления и пересылки

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

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

Заключение

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

Введение

В данном реферате подробно описывается ADSP-2106х, рассматриваются типы команд, синтаксис ассемблера и код операции, по которому транслируется команда. Многие типы команд имеют поле для определения операции вычисления. Это операции, которые используют ALU, умножитель или устройство сдвига. (Заметим, что пересылка данных между регистрами MR и регистровым файлом рассматриваются как операции умножителя)

Команды группируются по четырем категориям:

Команды вычисления и пересылки или модификации, которые определяют параллельное выполнение операции вычисления с одной или двумя пересылками данных или с модификацией индексного регистра.

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

III. Команды пересылки данных, в которых непосредственное поле команды используется как операнд или для адресации.

IV. Прочие команды, такие как модификация и проверка бита, нет операции и простой.

Команды нумеруются от 1 до 23. Некоторые команды имеют несколько синтаксических форм, например, команда четвертого типа имеет четыре различные формы. При программировании номер команды не учитывается, но он соответствует коду операции, распознаваемому аппаратурой ADSP-2106х. Многие из команд могут быть условными. Этим командам предшествует "IF" плюс мнемоника условия. В условной команде выполнение всей команды основывается на заданном условии.

Команды вычисления и пересылки

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

Синтаксис:

compute,

DM (Ia,Mb) =dregl, dregl= DM (Ia,Mb)

PM (Ic,Md) =dreg2 dreg2=PM (Ic,Md)

Функция:

Параллельный доступ к памяти данных и памяти программы из регистрового файла. Определенные регистры I используются для адресации памяти данных и памяти программы. Значение I поет-модифицируется и обновляется значением определенного регистра М. Предмодификация адреса со смещением не поддерживается.

Примеры:

R7=BSET R6 BY RO, DM (10,M3) =R5, PM (111,M15) =R4; R8=DM (I4,M1), PM (I12,M12) =R0;

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

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

D P DM PM
001 M DMI DMM M DREG PMI PMM DREG
D D

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

COMPUTE

Тип обращения (чтение или запись) выбирается DMD и PMD. Ячейка памяти регистрового файла определяется DMDREG и PMDREG. DMI и PMI определяют регистр I для памяти данных и памяти программы. DMM и РММ определяют регистр М, используемый для обновления регистра I. Поле COMPUTE определяет операцию вычисления, выполняемую параллельно с доступом к данным. Если операция вычисления не задана в команде, то это операция NO Р.

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

Синтаксис:

IF условие вычисление;

Функция:

Условная команда вычисления. Команда выполняется, если при проверке определенное условие верно.

Примеры: IF MS MRF=0; F6= (F2+F3) /2;

Код операции: 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 00001 COND

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

COMPUTE

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

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

Функция:

Обращения между памятью данных или памятью программы и универсальным регистром. Определенные регистры I используются для адресации памяти данных и памяти программы. Значение I либо пред-модифицируется (М, I) либо пост-модифицируется (I, М) значением определенного регистра М. При пост-модификации значение регистра I обновляется модифицированным значением. Если определена операция вычисления, то она выполняется параллельно с доступом к данным. Если условие определено, то оно влияет на выполнение всей команды.

Замечание:

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

Примеры:

R6=R3-R11, DM (IO,M1) =ASTAT;

IF NOT SV F8=CLIP F2 BY F14, PX=PM (112,M12);

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

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

010 Т I м COND G D UREG

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

COMPUTE

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

Тип доступа (чтение или запись) выбирается D. G выбирает память данных или память программы. UREG определяет универсальный регистр. I определяет индексный регистр I, М - регистр модификации М. U выбирает либо пред-модификацию без обновления либо пост-модификацию с обновлением. Поле COMPUTE определяет вычислительную операцию, выполняемую параллельно с доступом к данным. Если в команде не определено никакой операции вычисления, то это поле NOR

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

Синтаксис:

DM (Ia,<data6>) PM (Ic,<data6>)

DM (<data6>, Ia) PM (<data6>, Ic)

dreg = DM (Ia,<data6>) PM (Ic,<data6>)

dreg = DM (<data6>, Ia) PM (<data6>, Ic)

Функция:

Обращения между памятью данных или памятью программы и регистровым файлом. Определенные регистры I используются для адресации памяти данных и памяти программы. Значение I либо пред-модифицируется (data, I), либо поет-модифицируется (I, data) непосредственным значением данных. При пост-модификации регистр I обновляется модифицированным значением. Если определена операция вычисления, то она выполняется параллельно с доступом к данным. Если условие определено, то оно влияет на выполнение всей команды.

Примеры:

IF FLAG0_IN F1=F15*F12, F11=PM (110,40); R12=R3 AND Rl, DM (6, II) =R6;

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

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

011 0 I G D и COND DATA DREG

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

COMPUTE

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

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

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

Синтаксис:

IF условие вычисление, uregl=ureg2;

Функция:

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

Примеры:

IF TF MRF=R2*R6 (SSFR), M4=R0; LCNTR=L7;

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

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

Oil 1 Source UREG COND DestUREG

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

COMPUTE

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

SourceUREG указывает универсальный регистр - источник данных. DestUREG указывает универсальный регистр - адресат. Поле COMPUTE определяет операцию вычисления, выполняемую параллельно с доступом к данным. Если в команде не определено никакой операции вычисления, то это поле NOP.

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

Синтаксис:

a. IF условие Непосредственный сдвиг

DM (Ia,Mb) PM (Ic,Md) = dreg;

b. IF условие Непосредственный сдвиг

dreg = DM (Ia,Mb) PM (Ic,Md)

Функция:

Операция непосредственного сдвига - это операция устройства сдвига. Y-операнд - это непосредственные данные (одно 8-разрядное число или два 6-разрядных числа, в зависимости от операции). Х-операнд и результат являются регистрами регистрового файла.

Если определен доступ из регистрового файла к памяти данных или памяти программы, то он выполняется параллельно с операцией устройства сдвига. Регистр I используется для адресации памяти данных и памяти программы. Значение I поет-модифицируется значением определенного регистра М и обновляется модифицированным значением. Если условие определено, то оно влияет на выполнение всей команды.

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