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

ЛР4

.doc
Скачиваний:
15
Добавлен:
23.06.2024
Размер:
1.51 Mб
Скачать
  1. Министерство цифрового развития, связи и массовых коммуникаций российской федерации

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

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

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

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

  2. 4

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

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

  5. на тему

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

  1. Бригада № 5

  1. Выполнил:

  2. студент гр. БЗС2002

  3. Ломакин А. А.

  4. Проверила:

  5. ст. пр. Зуйкова Т. Н.

Москва 2023

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

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

Ответ: SR1 = 0x 00C0; SR0 = 0x FFEE; SR = LSHIFT SR0 by 7 (HI); SR1 = B# 1111 0111 0000 0000; SR0 = B# 0000 0000 0000 0000;

SR1 = 0x F700; SR0 = 0x 0000;

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

Ответ: SR1 = 0x 0C0F; SR0 = 0x EB0B; SR = SR OR LSHIFT SR1 by -11 (LO); SR1 = B# 0000 1100 0000 1111; SR0 = B# 1110 1011 0000 1011; SR1 = 0x 0C0F; SR0 = 0x EB0B;

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

520 = B# 0010 0000 1000 = 0x 208;

-267 = B# 1110 1111 0101 = 0x FEF5;

0.5 = B# B# 0100 0000 0000 0000 = 0x 4000;

-0.25 = B# 1010 0000 0000 0000= 0x A000;

1.0625 = B# 1000 1000 0000 0000 = 0x 8800.

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

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

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

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

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

№ ПК

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

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

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

5

C5CE

9D6B

на 7 разрядов влево

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

Сдвигатель – это функциональный блок, входящий в состав архитектуры 16- разрядного сигнального процессора ADSP-2181. Предназначен для поддержания функций арифметического и логического сдвигов 16-разрядных операндов в 32- разрядном поле с возможностью логического сложения с содержимым поля посредством операции логического «ИЛИ». Кроме того, сдвигатель позволяет преобразовать многоразрядный операнд в формат с плавающей запятой.

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

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

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

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

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

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

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

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

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

Рисунок 1 — Структура и система команд сдвигателя (нарисовать на бумаге)

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

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

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

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

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

Рисунок 3 — Исходный текст программы

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

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

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

РЕЗУЛЬТАТЫ

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

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

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

расчет

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

До сдвига

После сдвига

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

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

До сдвига

После сдвига

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

До сдвига

После сдвига

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

До сдвига

После сдвига

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

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

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

Номер итерации

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

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

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

1-я итерация

2-я итерация

3-я итерация

8-я итерация

16-я итерация

32-я итерация

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

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

Контрольные вопросы для защиты

1. Какие функции в процессоре выполняет блок сдвигателя? Поясните примером.

2. Как формируется результат арифметического сдвига? Поясните примером.

3. Чем отличается логический сдвиг от арифметического сдвига? Поясните примером.

4. Перечислите все регистры, в которых могут находиться исходные 16-разрядные данные для операции сдвига?

5. Как определяется направление сдвига? Поясните примером.

6. Что обозначает запись (LO) в системе команд сдвигателя? Поясните примером.

7. Что обозначает запись (HI) в системе команд сдвигателя? Поясните примером.

8. С какой целью применяется в сдвигателе операция логическое «ИЛИ»? Поясните примером.

9. Каким образом в процессоре можно реализовать логический сдвиг 32-разрядных данных, если сдвигатель осуществляет сдвиг только 16-разрядных данных? Поясните примером.

10. Каким образом выделить 32 старших бита в 34-разрядном результате умножителя, сформированном при суммировании произведений? Поясните примером.

11. С какой целью в криптографии применяется операция циклического сдвига? Обоснуйте и поясните примером.

12. Каким образом можно реализовать в сдвигателе циклический сдвиг 32-разрядных данных на 25 битов вправо? Поясните примером.

Список литературы

1. Шаврин С.С., Мельник С.В. Цифровые системы передачи и методы их защиты [Электронный ресурс]: учебное пособие для бакалавров. - М.: ЭБС МТУСИ, 2020.- 91 с. Количество книг в библиотеке МТУСИ – 5. Режим доступа: https://lms.mtuci.ru/lms/local/mtt/elib_download.php?book_id=2375

2. Шаврин С.С. Реализация базовых операций защиты информации на сигнальных процессорах. Часть 2: Учебное пособие / МТУСИ. – М.: ЭБС МТУСИ, 2016. – 40 с. ЭБС МТУСИ. Количество книг в библиотеке МТУСИ – 99. Режим доступа: https://lms.mtuci.ru/lms/local/mtt/elib_download.php?book_id=1399

7

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