Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_TMS.doc
Скачиваний:
75
Добавлен:
10.06.2015
Размер:
776.7 Кб
Скачать

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. Обобщенная программа ветвления при логической связи ИЛИ

е же структуры, но для логической связи И показаны на рис. 10 и рис. 11.

В случае, когда сложное условие представляет собой сочетание логических связей, составляется комбинированная структура. Например, для сложного условия (<условие 1> или <условие 2>) и <условие 3> обобщенная алгоритмическая структура ветвления и соответствующая прог

…………………….

comanda 1 ; формирование (R) по 1-му условию

[R] comanda 2 ; формирование (R) по 2-му условию

…………………….

[R] comanda n ; формирование (R) по n-му условию

[R] com1 ; операция 1 – выполнены все простые условия

[!R] com2 ; альтернативная операция 2 – не выполнено

;хотя бы одно простое условие

…………………….

Рис. 11. Обобщенная программа ветвления при логической связи И

рамма представлены на рис. 12.

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

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

4. В пошаговом режиме выполнить прогон программы (см. стр. 9), для каждой командной строки записывая в таблицу отчета соответствующие данные из окна CPU симулятора. При этом исходные данные в условиях подобрать так, чтобы можно было убедиться в правильной реализации ветвления.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]