- •1. Цель работы
- •2. Структура проекта
- •3. Рекомендуемый путь и этапы создания проекта в vdsp
- •3.1 Пример и описание .Ldf файла
- •Search_dir() - определение путей к текущей рабочей директории и к директории lib.
- •3.2 Структура простейшего .Asm файла
- •Rti; nop; nop; nop; /* 0x0008: irql1*/
- •3.3 Компоновка проекта и создание исполняемого .Dxe файла
- •Rti; nop; nop; nop; /* 0x0008: irql1*/
- •Rti; nop; nop; nop; /* 0x0020: sport1 transmit*/
- •Rti; nop; nop; nop; /* 0x0028: Timer*/
- •4. Запуск и отладка проекта.
- •4.1 Запуск проекта Lab1
- •4.2 Отображение содержимого памяти
- •4.3 Отображение содержимого регистров
- •4.4 Построение графиков
- •5. Задание к лабораторной работе
- •1. Особенности и типы команд сигнального процессора
- •2. Используемые условия
- •2.1 Подробное описание регистров состояния и значения их битов
- •2.2 Логическое описание условий (cond), используемых с оператором if
- •2.3 Условия завершения цикла do until (term)
- •3. Многофункциональные инструкции
- •3.1 Операции alu/mac с одновременным чтением памяти данных и памяти программ
- •3.2 Чтение памяти данных и памяти программ
- •3.3 Вычисления с чтением из памяти
- •3.4 Вычисления с записью в память
- •3.5 Вычисления с пересылкой регистр-регистр
- •4. Инструкции alu, mac и shifter
- •4.1 Инструкции и стандартные функции
- •4.2 Инструкции и стандартные функции
- •4.3 Инструкции и основные функции
- •5. Команды пересылки данных
- •6. Инструкции управления исполнением программы
- •If eq jump my_label; call (i6);
- •7. Другие инструкции и команды не вошедшие в
- •8. Обобщённая таблица команд
5. Задание к лабораторной работе
Используя инструкции АЛУ и умножителя-накопителя, решить задачу в соответствии с номером варианта:
1. Найти произведение суммы нечетных элементов массива и числа 5.
2. Упорядочить одномерный массив по возрастанию модулей элементов, перемножить первый и последний элементы.
3. Переместить массив из 15 элементов из одной области памяти в другую, при этом умножить каждый элемент на 3.
4. Создать массив, содержащий 20 первых чисел Фибоначчи.
5. Найти сумму квадратов элементов массива.
6. Перемножить 1,3,5,7 элементы массива.
7. Найти произведение четных элементов массива.
8. Найти произведение самой длинной последовательности подряд стоящих ненулевых элементов в одномерном массиве.
9. Переместить из одной области памяти в другую элементы массива, не равные 5, умножив их на 3.
10. Найти наибольший отрицательный элемент массива и умножить его на наибольший положительный.
11. Найти сумму элементов массива с нечетными номерами и возвести её в квадрат.
12. Возвести элементы массива в степень, численно равную второму элементу массива.
13. По адресу 2000 (DM) поместить произведение элементов массива.
14. Найти наибольший четный элемент массива и умножить его на первый элемент массива.
15. Образовать из массива два новых: один, содержащий элементы, стоящие на нечетных местах, умноженные на 2 и второй – содержащий элементы, стоящие на четных, умноженные на 3.
16. Найти сумму кубов элементов массива.
17. Найти сумму положительных элементов массива и умножить её на сумму отрицательных.
18. Найти произведение элементов массива, стоящих до первого положительного элемента.
19. Возвести первый элемент массива в степень, численно равную количеству неотрицательных элементов массива.
20. Вычислить n!
21. Составить из данного массива другой, умноженный на 3 и чтобы в нем не было повторяющихся рядом стоящих элементов.
22. Упорядочить одномерный массив по возрастанию, умножив каждый элемент на наименьший.
23. Найти произведение модулей элементов массива, номера которых кратны трем.
24. Массив из 10 элементов переписать в другую область памяти в порядке номеров: 1,3,5,7,9,2,4,6,8, умножить все элементы на нулевой.
25. Найти сумму попарных произведений соседних элементов массива.
Используя инструкции устройства циклического сдвига, решить задачу в соответствии с номером варианта:
1. Найти количество нулей в 16-битном двоичном числе.
2. Найти количество элементов массива, содержащих единицу в третьем справа двоичном разряде.
3. Изменить на противоположный порядок следования бит 16-разрядного двоичного числа.
4. Поменять местами байты в 16-битном двоичном числе.
5. Циклически сдвинуть 16-битное число на 4 разряда влево.
6. Попарно поменять местами тетрады в 16-битном числе (например, вместо 1234Н должно получиться 2143Н).
7. Округлить двоичное 16-битное число до 5 справа двоичного разряда.
8. Найти длину самой длинной последовательности подряд стоящих нулей в двоичном представлении числа.
9. Найти сумму цифр двоичного 16-разрядного числа.
10. Дополнить 15-битное число битом проверки на нечетность.
11. Циклически сдвинуть каждый байт 16-разрядного двоичного числа на 3 разряда влево.
12. Определить количество разрядов двоичного числа, в которых стоит единица, обрамленная нулями.
13. Поменять местами соседние биты в 16-битном двоичном коде.
14. Дополнить 15-битное число битом проверки на четность.
15. 128-битное двоичное число расположено в 8 последовательных ячейках памяти. Найти число нулей в самой длинной группе подряд стоящих нулей.
16. Дано 16-битное двоичное число. Получить новое 32-битное число, состоящее из периодически чередующихся 3,4 и 7,8 разрядов исходного числа.
17. Найти количество повторений кода “…101…” в 16-битном двоичном числе.
18. 64-битное двоичное число хранится в 4-х последовательных ячейках памяти. Логически сдвинуть его на 4 разряда вправо и поместить на прежнее место.
19. Изменить последние 6 разрядов 16-битного двоичного числа на третий разряд этого же числа.
20. 128-битное двоичное число расположено в 8 последовательных ячейках памяти. Переставить его тетрады в обратном порядке.
21. Инвертировать все разряды в 16-битном коде, которые стоят после двух нулевых разрядов (например, 0010101000…).
22. 64-битное двоичное число хранится в 4-х последовательных ячейках памяти. Циклически сдвинуть его на 4 разряда вправо и поместить на прежнее место.
23. 128-битное двоичное число расположено в 8 последовательных ячейках памяти. Переставить его биты в обратном порядке.
24. Поменять местами два первых и два последних разряда 16-битного двоичного числа.
25. 128-битное двоичное число расположено в 8 последовательных ячейках памяти. Найти сумму его цифр.
ПРИЛОЖЕНИЕ
Система команд сигнального процессора ADSP-2189M