Материал: Пересылка данных и арифметические операции на языке ассемблера процессора TMS320C6x (90

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

команды MVK. При этом следует помнить, что команда выполняется с расширением знаком;

число превышает полуслово, необходимы две команды: сначала MVK, а затем MVKH или MVKLH. Последняя команда обязательна при 16-ричном представлении операнда и буквой в старшем его разряде.

Операция 2. В регистр R2 общего назначения (задать в соответствии с последующими заданиями работы и отличающимся от R1) ввести число 50h в качестве базового адреса ячейки ПД процессора.

Операция 3. Сохранить содержимое R1 в ПД процессора в соответствии с условиями, выбранными из следующей таблицы по номеру варианта V = N:

V

Условия сохранения

1

2

1В ячейке памяти 48h с изменением содержимого R2.

2В ячейке памяти 50h без изменения содержимого R2.

3В ячейке памяти 50h с изменением содержимого R2 до величины 4Сh.

4В ячейке памяти F4h с изменением содержимого R2.

1

2

5В ячейке памяти 4Сh без изменения содержимого R2.

6В ячейке памяти 50h с изменением содержимого R2 до величины 51h.

7В ячейке памяти 44h с изменением содержимого R2.

8В ячейке памяти 51h.

9В ячейке памяти 50h с изменением содержимого R2 до величины F0h.

10В ячейке памяти 60h с изменением содержимого R2.

11В ячейке памяти 54h без изменения содержимого R2.

12В ячейке памяти 50h с изменением содержимого R2 до величины 64h.

13В ячейке памяти 38h с изменением содержимого R2.

14В ячейке памяти 51h.

15В ячейке памяти 50h с изменением содержимого R2 до величины 4Fh.

16В ячейке памяти 70h с изменением содержимого R2.

17В ячейке памяти 4Fh.

18В ячейке памяти 34h без изменения содержимого R2.

19В ячейке памяти 58h с изменением содержимого R2.

20В ячейке памяти 50h с изменением содержимого R2 до величины 4Fh.

21В ячейке памяти 50h с изменением содержимого R2 до величины 54h.

22В ячейке памяти 40h с изменением содержимого R2.

23В ячейке памяти 51h.

11

24В ячейке памяти 50h без изменения содержимого R2.

25В ячейке памяти 54h с изменением содержимого R2.

26В ячейке памяти 4Fh.

27В ячейке памяти 50h с изменением содержимого R2 до величины 51h.

28В ячейке памяти E0h с изменением содержимого R2.

29В ячейке памяти 5Сh без изменения содержимого R2.

30В ячейке памяти 28h с изменением содержимого R2.

1

2

31В ячейке памяти 50h с изменением содержимого R2 до величины 3Сh.

32В ячейке памяти 6Сh с изменением содержимого R2.

Поскольку речь идет о сохранении всего содержимого регистра R1, следует воспользоваться командой STW R1,*Ак, где Ак – адресный код. При формировании Ак в зависимости от целей дальнейшего использования регистра базового адреса (базы) R2 применяется один из следующих типов адресации:

косвенная, если R2 содержит требуемый исполнительный адрес Аи и изменять содержимое R2 не следует;

базирование, если R2 не содержит требуемый Аи и изменять содержимое R2 не следует;

преиндексация, если R2 не содержит требуемый Аи и после операции пересылки необходимо заменить содержимое R2 на Аи;

постиндексация, если R2 содержит требуемый Аи, но после операции пересылки можно или нужно заменить содержимое R2 на Аи;

преавтоинкремент или преавтодекремент, если содержимое R2 на 1 меньше или, соответственно, больше требуемого Аи и после операции пересылки содержимое R2 необходимо заменить на Аи;

поставтоинкремент или поставтодекремент, если R2 содержит требуемый Аи, но после операции пересылки можно или нужно изменить содержимое R2 на 1.

Внимание! При составлении и прогоне программы учитывайте особенности симулятора:

не поддерживает автоиндексацию. Вместо этого он автоматически устанавливает смещение, равное 1;

если смещение превышает 31, следует предварительно ввести его в любой из свободных РОН и указать смещение именем этого регистра. При этом в качестве регистра базы можно использовать любой РОН.

Операция 4. Из ячейки ПД процессора, используемой в предыдущем пункте, загрузить в регистр R3 (назначить из РОН по своему усмотрению, но отличающимся от R1 и R2) число в соответствии с условиями, выбранными из следующей таблицы по номеру варианта V = N:

12

V

Условия загрузки

1

2

1Полуслово с расширением знаком и без изменения содержимого R2.

2Байт с расширением знаком и увеличением содержимого

R2 на 1.

3Полуслово с расширением знаком и изменением содержимого R2 до величины 52h.

4Байт без расширения знаком и с уменьшением содержимого R2 на величину Ah.

5Полуслово без расширения знаком и изменения содержимого R2.

6Байт с расширением знаком и без изменения содержимого

R2.

7Полуслово без расширения знаком и с увеличением содержимого R2 на величину Еh.

8Байт без расширения знаком и изменения содержимого

R2.

9Полуслово без расширения знаком и изменения содержимого R2.

10Байт с расширением знаком и уменьшением содержимого R2 на величину 12h.

11Полуслово без расширения знаком и c увеличением содержимого R2 на величину 58h.

12Полуслово с расширением знаком и без изменения содержимого R2.

13Байт без расширения знаком и c увеличением содержимого R2 на величину 22h.

14Байт с расширением знаком и уменьшением содержимого R2 на величину 1Аh.

15Полуслово без расширения знаком и изменения содержимого R2.

16Байт с расширением знаком и без изменения содержимого

R2.

17Полуслово без расширения знаком и c увеличением содержимого R2 на величину 10h.

18Полуслово с расширением знаком и изменением содержимого R2 до величины 76h.

19Полуслово без расширения знаком и c увеличением содержимого R2 на величину 54h.

20Байт без расширения знаком и изменения содержимого

R2.

21Байт с расширением знаком и изменением содержимого R2 до величины 53h.

13

1

2

22Полуслово с расширением знаком и уменьшением содержимого R2 на 6.

23Байт без расширения знаком и c увеличением содержимого R2 на величину 26h.

24Байт с расширением знаком и увеличением содержимого R2 на величину 2Еh.

25Полуслово без расширения знаком и изменения содержимого R2.

26Полуслово с расширением знаком и увеличением содержимого R2 на величину 42h.

27Байт с расширением знаком и изменением содержимого R2 до величины 58h.

28Полуслово без расширения знаком и c уменьшением содержимого R2 на 1.

29Байт без расширения знаком и изменения содержимого

R2.

30Полуслово с расширением знаком и увеличением содержимого R2 на 1.

1

 

2

31

Полуслово без

расширения знаком и изменения

содержимого R2.

 

 

 

32Байт с расширением знаком и уменьшением содержимого

R2 на 1.

Операции загрузки в зависимости от объѐма данных реализуются посредством команд LDW(Н, В) *Ак,r, где r – имя регистра-приемника операнда. При этом следует помнить:

третья буква мнемоники помимо объѐма пересылаемых данных определяет закономерность изменения величины смещения;

команды LDН и LDВ выполняются с расширением знаком пересылаемой части слова. При необходимости расширения нулем следует применять команды LDW(Н, В)U;

команды загрузки имеют 4 слота задержки, то есть результат доступен для использования только спустя 4 такта после объявления команды. Так, если команда объявлена в n-ом такте, результат ее выполнения сформируется в (n+4)-ом такте, а использовать его можно, начиная только с (n+5)-го такта. Таким образом, в данной работе после команды загрузки необходимо объявить 4-тактный мультицикл NOP (нет операции): NOP 4.

Операция 5. Переслать (скопировать) содержимое R3 в R1.

В соответствии с заданием обобщѐнные алгоритм и программа (без указания конкретных чисел, имен регистров РОН, номера ячейки ПД (ЯП) и адресного кода Ак) представлены на рис. 4, где (Z) – содержимое объекта Z

(регистра РОН или ячейки памяти данных), а символ

обозначает операцию

 

14

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

Начало

R1 <число>,

R2 50h

ЯП(Ак) (R1)

R3 (ЯП(Ак))

R1 (R3)

Конец

mvk <число>,R1 ; ввод mvkh(mvklh) <число>,R1 ; исходных

…………………….

; данных

stw

R1,*Aк

 

ldw(h,b)(u) *Ак,R3

 

nop

4

 

mv

R3,R1

 

Рис. 4. Блок-схема алгоритма и программа в обобщѐнном виде

2.Получить исполняемый программный модуль (см. стр. 7 – 8).

3.Загрузить исполняемый модуль в симулятор (см. стр. 9).

4.В пошаговом режиме выполнить прогон программы (см. стр. 10), сравнивая данные прогноза с соответствующими данными окна CPU симулятора.

5.Предъявить результаты выполнения работы преподавателю, после чего завершить работу с симулятором (см. стр. 10).

3. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ

Функциональные устройства (модули) ядра процессора способны вычислять суммы, разности и произведения операндов как знаковых, так и без знака.

Цель работы

Изучить особенности команд пересылки данных ассемблера процессора

TMS320C6x.

Подготовка к работе

1.По указанной выше литературе изучить форматы и особенности выполнения арифметических команд ассемблера TMS320C6x.

2.Подготовить отчет (стр. 3 – 4) в соответствии с первым заданием работы.

Контрольные вопросы

1.Сформулируйте правило формирования результата при выполнении команды вычитания над знаковыми операндами.

2.Сформулируйте правило формирования результата при выполнении команды ABS.

3.Приведите формат арифметической команды, заданной преподавателем.

4.Укажите особенности команды ADD.

5.Укажите особенности команды ADDK.

6.Определите результат выполнения команды, заданной преподавателем.

15

Источник: https://studfile.net/preview/16724319/