Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_раб_4_Хихловская.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
164.86 Кб
Скачать

Bra.S m5; обхід запису числа fdh у d2

M4: MOVE.L #$FD,D2; так, запис до D2 числа $FD

M5: move d5,sr; відновлення регістру стану з d5

RTS; повернення з підпрограми

Рисунок 2.1 – Структурна схема алгоритму підрахування кількості одиниць

Якщо кількість одиниць є непарна, то у регістр D2 записується довільна позначка $FD, а якщо ж парна, то регістр D2 обнулюється.

Приклад 2.2 Скласти програмні моделі скремблера та дескремблера, які б дозволяли за допомогою генератора випадкових чисел кодувати 255 відліків цифрового сигналу, а потім їх декодувати. Надходження цифрових сигналів з лінії зв‘язку у паралельному коді імітується зчитуванням однобайтових елементів масиву з пам‘яті, починаючи з адреси $600500. Кодовані скремблером значення відліків записуються у пам‘ять, починаючи з адреси $600600, потім декодуються у моделі дескремблера і первісні значення відліків для порівняння запам‘ятовуються, починаючи з адреси $600700. Для генерації псевдовипадкової послідовності (ПВП), як правило, використовуються кільцеві зсувові регістри з суматорами за модулем 2 у введених колах зворотного зв’язку. Не будь-яка конфігурація структури зворотного зв‘язку забезпечує максимальний період псевдопослідовності, що дорівнює 2N–1, де N – кількість розрядів регістру. На рисунку 2.2 показано одну з максимальних структур з трьома колами зворотного зв’язку, які зв’язують 0, 2, 4, та 7-й розряди 8-розрядного зсувового регістру. Ця структура забезпечує максимальний період генерації числової псевдопослідовності, що дорівнює 255.

Рисунок 2.2 – Генератор псевдовипадкової послідовності

Задана структура зворотного зв‘язку зсувового регістру здійснюється за допомогою маски $95. Для реалізації трьох послідовних операцій складання за модулем 2 прийнятої структури зручно використовувати ознаки парності або непарності кількості одиниць у байті на кожному кроці зсуву, який зреалізовується програмно за допомогою команди ROXL.B – циклічного зсуву ліворуч з розширенням.

Скремблювання та дескремблювання відліків сигналів здійснюється шляхом операції додавання їх за модулем 2 до чергового псевдовипадкового числа.

Структурну схему алгоритму зображено на рисунку 2.3.

Програма розв’язання задачі:

MOVEA.L #$400700,A0; завантаження адреси масиву сигналів у

; А0

MOVEA.L #$400800,A1; завантаження адреси масиву кодованих

; сигналів у А1

MOVE.L #$FE,D3 ; завантаження лічильника циклів ПВП

Рисунок 2.3 – Структурна схема алгоритму скремблера–дескремблера

MOVE.L #$1,D4; завантаження лічильника циклів

; скремблювання–дескремблювання

M4: MOVE.L #$9,D0; завантаження першого числа ПВП

M1: MOVE.L D0,D1; запам‘ятовування чергового числа ПВП

; у D1

MOVE.B (A0)+,D2; скремблювання чергового елемента

EOR.B D0,D2; масиву вхідних сигналів

MOVE.B D2,(A1)+; та запам’ятовування його за адресою

; (А1)+

ANDI.B #$95,D0; організація зворотних зв’язків

BSR EVEN; звернення до ПП визначення парності–

; непарності кількості одиниць у байті

MOVE SR,D5; Ні, пересилання SR у D5

BTST #$0,D2; кількість одиниць

BEQ.S M2; парна?

ANDI.B #$FD,D5; встановлення Х у “0”

BRA.S M3; обхід встановлення Х у “1”

M2: ORI.B #$10,D5; Так, встановлення Х у “1”

M3: MOVE D5,SR; відновлення регістру стану

MOVE.L D1,D0; відновлення чергового числа ПВП

ROXL.B #1,D0; циклічний зсув D0 ліворуч через Х

DBF D3,M1; повернення до початку внутрішнього

; циклу

MOVEA.L #$400800,A0; переадресування вхідного

MOVEA.L #$400900,A1; та дескрембльованого масивів сигналів

MOVE.L #$FE,D3; перевантаження лічильника циклів

DBF D4,M4; повернення до початку зовнішнього

; циклу

NOP; закінчення програми

Слід відзначити, що при зверненні до ПП визначення кількості одиниць у байті значення байта, що вміщується у D0, треба передавати з основної програми, а команду MOVE.L #$9,D0 вилучити з ПП.

Результатом виконання програми є три масиви: перший, що складається з відліків вхідного сигналу, починаючи з адреси $400700; другий починається з адреси $400800 і складається з кодованих сигналів, а третій, розташований за адресою $400900, складається з розкодованих відліків вхідного сигналу. Кожний з масивів складається з 255 елементів.