Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LR4_CSP

.docx
Скачиваний:
0
Добавлен:
12.05.2024
Размер:
783.1 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

  1. Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

  2. Московский технический университет связи и информатики

  3. Кафедра многоканальных телекоммуникационных систем

ЛАБОРАТОРНАЯ РАБОТА

4

по дисциплине

Цифровые системы передачи и методы их защиты

на тему

Реализация циклического сдвига 32-разрядных данных

Бригада №

Выполнил: студент гр. бкк2001

Проверила: Зуйкова Т.Н.

Москва 20

Индивидуальное задание

1. Запишите на языке ассемблер процессора ADSP-2181 фрагмент программы, содержащий запись в регистр SR шестнадцатеричного числа C0FFEE, а также команду, реализующую логический сдвиг содержимого регистра SR1 на 7 разрядов влево относительно регистра SR0. Ожидаемый результат выполнения команды представьте в двоичном и шестнадцатеричном виде для регистров SR1 и SR0.

Решение: sr0 = 0xFFEE;

sr1 = 0x00C0;

sr = lshift sr0 by 7 (LO);

Ответ: sr1 = 0000 0000 0111 1111; 0x007F

sr0 = 1111 0111 0000 0000; 0xF700

2. Запишите на языке ассемблер процессора ADSP-2181 фрагмент программы, содержащий запись в регистр SR шестнадцатеричного числа C0FEB0B, а также команду, реализующую логическую операцию «ИЛИ» содержимого регистра SR и регистра SR0, логически сдвинутого на 9 разрядов вправо относительно регистра SR1. Ожидаемый результат выполнения команды представьте в двоичном и шестнадцатеричном виде для регистров SR1 и SR0.

Решение: sr0 = 0xEB0B;

sr1 = 0x0C0F;

sr = sr or lshift sr0 by -9 (hi);

Ответ: sr1 = 0000 1100 0111 1111; 0x0C7F

sr0 = 1110 1111 1000 1011; 0xEF8B

3. Запишите следующие десятичные числа в двоичной и шестнадцатеричной системах счисления, используя префиксы 0x и B#, для 16-разрядного процессора:

39 = b#0000 0000 0010 0111; 0x0027

-129 = b#1111 1111 0111 1111; 0xFF7f

0.25 = b#0010 0000 0000 0000; 0x2000

-0.125 = b#1111 0000 0000 0000; 0xF000

1.25 = b#1010 0000 0000 0000; 0xA000

1 Постановка задачи

Средствами сигнального процессора ADSP-2181 реализовать циклический сдвиг 32-разрядного начального вектора V.

2 Исходные данные

Исходные данные представлены в таблице 1.

Таблица 1 — Исходные данные (шестнадцатеричная запись)

№ ПК

Старшая половина вектора V

Младшая половина вектора V

Количество разрядов и направление циклического сдвига

6

0xC5DE

0xCD6A

на 7 разрядов вправо

Таблица 1 — Исходные данные (шестнадцатеричная запись)

3 Структурная схема сдвигателя

  1. Сдвигатель - это устройство сдвига. Осуществляет логические и арифметические сдвиги, нормализацию, денормализацию и операцию получения порядка, а также управление форматом данных, разрешая работу с плавающей точкой.

Структурная схема сдвигателя представлена на рисунке 1, где

SI – регистр операнд

SE – разрядный регистр

SR1 – старший регистр результата

SR0 – младший регистр результата

SR – объединенный регистр результата

R – шина результата

HI - позиция, по отношению к которой рассматривается сдвиг в SR1

LO - позиция, по отношению к которой рассматривается сдвиг в SR0

Рисунок 1. Схема сдвигателя.

4 Блок-схема алгоритма

Блок-схема алгоритма, реализующего циклический сдвиг, представлена на рисунке 2.

Рисунок 2. Блок-схема алгоритма

5 Исходный текст программы

Исходный текст программы, реализующей циклический сдвиг, представлен на рисунке 3.

Рисунок 3. Текст программы

6 Результаты отладки программы

Результаты отладки программы представлены в таблице 2.

РЕЗУЛЬТАТЫ

Старшая половина

вектора

Младшая половина

вектора

Предварительный расчет

(двоичная запись)

До сдвига

1100 0101 1101 1110

1100 1101 0110 1010

После сдвига

1101 0101 1000 1011

1011 1101 1001 1010

Предварительный расчет

(шестнадцатеричная запись)

До сдвига

C5DE

CD6A

После сдвига

D58B

BD9A

Результат выполнения программы (двоичная запись)

До сдвига

1100 0101 1101 1110

1100 1101 0110 1010

После сдвига

1101 0101 1000 1011

1011 1101 1001 1010

Результат выполнения программы

(шестнадцатеричная запись)

До сдвига

C5DE

CD6A

После сдвига

D58B

BD9A

Таблица 2 — Результаты отладки программы

7 Результаты работы программы

Результаты работы программы представлены в таблице 3.

РЕЗУЛЬТАТЫ

Старшая половина вектора V

Младшая половина вектора V

Начальное значение

1100 0101 1101 1110

1100 1101 0110 1010

1-ая итерация

1101 0101 1000 1011

1011 1101 1001 1010

2-ая итерация

0011 0101 1010 1011

0001 0111 0111 1011

3-ая итерация

1111011001101011

0101 0110 0010 1110

8-ая итерация

1101 1110 1100 1101

0110 1010 1100 0101

16-ая итерация

1100 1101 0110 1010

1100 0101 1101 1110

32-ая итерация

1100 0101 1101 1110

1100 1101 0110 1010

Таблица 3 — Результаты работы программы (двоичная запись)

8. Анализ полученных результатов и выводы

При реализации программы видно, что сдвигать за один машинный цикл можно только один из 16-разрядных регистров SR, при этом содержимое регистра, относительно которого идет сдвиг стирается.

Использованы регистры mr1 и mr0 для записи исходных данных.

Алгоритм циклического сдвига вправо: старшая часть вектора сдвигается вправо и помещается посередине, правая часть младшей части вектора помещается справа, а левая слева.

7

Соседние файлы в предмете Цифровые системы передачи