- •Программирование на языке ассемблера сигнального процессора tms320c6x
- •Введение
- •Рекомендуемая литература
- •Содержание отчета
- •Сохранение результатов лабораторной работы
- •1. Симулятор команд tms320c6201
- •Подготовка к работе
- •Задания и методические указания к их выполнению
- •2. Операции пересылки данных
- •Подготовка к работе
- •Задания и методические указания к их выполнению
- •3. Арифметические операции
- •Подготовка к работе
- •Задания и методические указания к их выполнению
- •4. Ветвление с простым условием
- •Подготовка к работе
- •Задания и методические указания к их выполнению
- •Раздел 1. Ввод исходных данных для выполнения операций 1-3.
- •5. Ветвление со сложным условием
- •Подготовка к работе
- •Задания и методические указания к их выполнению
- •6. Ветвление с вложеными условиями
- •Подготовка к работе
- •Задания и методические указания к их выполнению
- •7. Регулярные циклы
- •Подготовка к работе
- •Задания и методические указания к их выполнению
- •8. Итеративные циклы
- •Подготовка к работе
- •Задания и методические указания к их выполнению
5. Ветвление со сложным условием
Сложное условие состоит из нескольких условий, объединенных логической связью: <условие1> и<условие2>, <условие1>или<условие2>, где каждое из условий может быть как простым, так и сложным.
Подготовка к работе
Выполнить пункты 3 и 4 отчета (см. стр. 3 – 4) в соответствии с первым заданием работы. При этом требования пункта 4 отчета ограничить программой и прогнозами результатов выполнения ее команд.
Задания и методические указания к их выполнению
1. На языке ассемблера TMS320C6x подготовить программу, реализующую ветвление рис. 4, но ограниченное операциями 1 и 2 и с условием по варианту V = N таблицы:
V |
Условие ветвления |
Способ (команды) формирования содержимого регистра условия R |
1 |
2 |
3 |
1 |
(В8) < 0 и (В9)< 0 |
2 команды CMPGT |
2 |
(А9) = 0 или (А8) нечетно |
CMPЕQи выделение в (А8) младшего бита (EXTU) |
3 |
(В8) 0 и (В9) 0 |
(В8)(В9) и сдвиг результата вправо на 31 разряд (SHR) |
4 |
(А9) = 0 или в А8 пять старших единиц |
CMPЕQи сравнение числаF7FFFFFFhс (А8) (CMPLTU) |
5 |
(В8) < 0 и (В9)< 0 |
(В8)(В9) и выделение старшего бита результата (EXTU) |
6 |
(А9) 0 или (А8) четно |
CМРLТ и сдвиг влево (А8) на 31 разряд (SHL) |
7 |
(В8) 0 и (В9) 0 |
ORиCMPGT: 0>((В8)(В9)) |
8 |
(А9) 0 или в А8 четыре старших единицы |
MVнад(А9)и сравнение(А8)с числомEFFFFFFFh(CMPLT) |
9 |
(В8) < 0 и (В9)< 0 |
(В8)(В9) и сравнение результата с 0 (CMPGT) |
10 |
(А9) 0 или (А8) нечетно |
MVнад (А9) и сброс в (А8) области бит с 1 по 31 (CLR) |
11 |
(В8) 0 и (В9) 0 |
ORиSHRU(см. вариант 3) |
12 |
(А9) = 0 или в А8 пять старших единиц |
MV над (А9) и сравнение числаF8000000hс (А8) (CMPGTU) |
1 |
2 |
3 |
13 |
(В8) < 0 и (В9) < 0 |
(В8)(В9) и сдвиг результата вправо на 31 разряд (SHR) |
14 |
(А9) 0 или (А8) четно |
CMPLTи выделение в (А8) младшего бита (EXT) |
15 |
(В8) > 0и (В9) > 0 |
2 команды CМРLТ |
16 |
(А9) 0 или в А8 четыре старших единицы |
CMPЕQи сравнение (А8) с числомF0000000h(CMPGT) |
17 |
(В8) 0 и (В9) 0 |
ORи выделение старшего бита результата (EXT) |
18 |
(А9) = 0 или (А8) нечетно |
CMPЕQиSHL(см. вариант 6) |
19 |
(В8) < 0 и (В9) < 0 |
(В8)(В9) и сброс области бит результата с 0 по 30 (CLR) |
20 |
(А9) = 0 или в А8 пять старших нулей |
MV над (А9) ивыделениев (А8) области бит с 27 по 31 (EXT) |
21 |
(В8) 0 и (В9) 0 |
2 команды CMPGT |
22 |
(А9) 0 или (А8) четно |
CМРLТ иEXTU(см. вариант 2) |
23 |
(В8) < 0 и (В9) < 0 |
ANDиSHRU(см. вариант 13) |
24 |
Хотя бы одно из(А9) и (А8) нечетно |
ORи сброс области бит результата с 1 по 31 (CLR) |
25 |
(В8) 0 и (В9) 0 |
ORиEXTU(см. вариант 17) |
26 |
(А9) 0 или (А8)=0 |
CMPЕQ над (А9) и MV для (А8) |
27 |
(В8) < 0 и (В9)< 0 |
ANDиEXT(см. вариант 5) |
28 |
(А9) = 0 или А8 = 0 |
2 команды MV |
29 |
(В8) 0 и (В9) 0 |
ORи сброс области бит результата с 0 по 30 (CLR) |
30 |
Одно из (А9) и (А8) нечетно, другое четно |
(А9)(А8) и сброс области бит результата с 1 по 31 (CLR) |
где (Z) – содержимое регистра Z.
Регистр условия R назначить из РОН по своему усмотрению.
Реализация сложных условий на языке ассемблера имеет следующие особенности:
различные по типу простые условия (варианты 1, 2, 4, 14 – 16, 18,20 – 22, 26, 28) проверяются последовательно, причем все соответствующие команды, кроме первой, являются условными. При этом команды подбираются так, чтобы для одной и той же ветви результат их выполнения был одинаков;
для однотипных простых условий (варианты 3, 5, …, 13, 17, 19, 23 – 25, 27, 29, 30) формируется общий признак, причем соответствующие команды безусловны;
в любом случае используется один и тот же регистр условия R.
Так, например, для логической связи ИЛИ иnразнотипных простых условий структура рис. 4 в обобщенном виде показана на рис. 8, а соответствующая программа – на рис. 9. При этом, как и в последующих рисунках данной работы предполагается, что при выполнении простого условия содержимоеRненулевое.
Т
…………………….
comanda
1 ; формирование (R)
по 1-му условию [!R]
comanda
2 ; формирование (R)
по 2-му условию
……………………. [!R]
comanda
n
; формирование (R)
по n-му
условию [R]
com1
; операция 1 – выполнено хотя бы
одно
*простое условие
[!R]
com2
; альтернативная операция 2 – ни
одно из
;простых
условий не выполнено
…………………….
Рис. 9. Обобщенная программа ветвления
при логической связи ИЛИ
В случае, когда сложное условие
представляет собой сочетание логических
связей, составляется комбинированная
структура. Например, для сложного условия
(<условие 1> или <условие 2>) и
<условие 3> обобщенная алгоритмическая
структура ветвления и соответствующая
прог
…………………….
comanda
1 ; формирование (R)
по 1-му условию [R]
comanda
2 ; формирование (R)
по 2-му условию
……………………. [R]
comanda
n
; формирование (R)
по n-му
условию [R]
com1
; операция 1 – выполнены все простые
условия [!R]
com2
; альтернативная операция 2 – не
выполнено
;хотя
бы одно простое условие
…………………….
Рис. 11. Обобщенная
программа ветвления при логической
связи И
2. Получить исполняемый программный модуль (см. стр. 6 – 7).
3. Загрузить исполняемый модуль в симулятор (см. стр. 8).
4. В пошаговом режиме выполнить прогон программы (см. стр. 9), для каждой командной строки записывая в таблицу отчета соответствующие данные из окна CPU симулятора. При этом исходные данные в условиях подобрать так, чтобы можно было убедиться в правильной реализации ветвления.
5. Предъявить результаты выполнения работы преподавателю, после чего завершить работу с симулятором (см. стр. 9).