You are on page 1of 20

Subscribe to DeepL Pro to edit this document.

Visit www.DeepL.com/pro for more information.

Національний університет "Одеська політехніка"

Кафедра інформаційних технологій

Робота в середовищі графічного симулятора DSP563XX фірми


MOTOROLA. Команди організації циклів.

Методичне керівництво до лабораторної роботи

Одеса 2023 р.
1 Мета роботи

Ознайомлення з принципами роботи у віконному середовищі


симулятора цифрових процесорів DSP56300 фірми MOTOROLA. Вивчення
основних принципів організації циклів в асемблері цифрових процесорів
DSP56300 фірми MOTOROLA.

2 Стендове обладнання

Персональний комп'ютер Pentium II (жорсткий диск об'ємом


щонайменше 2Гб і ОЗП - щонайменше 127 Мб)

3 Ключові положення

3.1 Особливості організації циклів в асемблері цифрових процесорів


DSP56300 фірми MOTOROLA. Поняття статичного та динамічного
циклів.

Обробка цифрових сигналів зокрема і левової частки оброблюваної


сигнальними процесорами інформації взагалі неминуче призводить до
використання в програмному забезпеченні циклічних конструкцій. Асемблер
цифрових процесорів DSP56300 фірми MOTOROLA для цієї мети має у
своєму розпорядженні дві команди організації циклів, що, з одного боку,
спрощує роботу з цими конструкціями, а з іншого боку, структура цих
команд забезпечує достатню гнучкість в обробці практично будь-яких
великих масивів цифрової інформації.
Команди DO і ENDDO реалізовані апаратно. Розрізняють два різновиди
циклів, організованих за допомогою цих команд:

 Статичні цикли DO в яких кількість циклів відома заздалегідь і


задається константою;
 Динамічні цикли DO, у яких кількість циклів може змінюватися і
задається як вміст одного з регістрів ALU даних, AGU, PCU, X- або Y-
пам'яті.

Прийнято такий синтаксис команд для цих різновидів циклів:

1. Для статичних циклів:

DO #const,{mark}
...
<тіло циклу>
...
позначка:

2
Де #const - число виконуваних циклів, що задається константою,
{mark} - мітка закінчення циклу

2. Для динамічного циклу:

DO SR, {mark}
...
<тіло циклу>
...
позначка:

Де SR - будь-який регістр, що відповідає умовам синтаксису,


{mark} - мітка закінчення циклу

У низці випадків необхідно здійснити достроковий вихід із циклу DO


залежно від виконання необхідної умови. Для цього призначена команда
ENDDO. Зверніть увагу: ця команда не тільки перериває цикл, а й відновлює
вміст стека і службових регістрів таким чином, ніби програма конвенційно
закінчилася із завершенням звичайного циклу.

3.2 Навчальна програма.

Нижче наводиться текст і лістинг навчальної програми, що демонструє


особливості організації циклів в асемблері цифрових процесорів DSP56300
фірми MOTOROLA. Також програма використовує формат файлів введення-
виведення, що розглядався в попередніх роботах.
Зверніть увагу на те, як задається число повторень циклу. Оскільки
команда запису в зовнішній пристрій потрапляє в тіло циклу, то число
виведених значень дорівнюватиме числу циклів. Як Ви думаєте, скільки воно
становитиме? Будьте уважні...

3
Лістинг навчальної програми

Motorola DSP56300 Assembler Version 6.0.1.6 103-06-2215:48:03


15:48:03
prog5.asm Сторінка 1

1 ; Програма емуляції введення-виведення


2
3 000FA0 ADDR_A EQU 4000
4 000BB8 ADDR_B EQU 3000
5 0007D0 ADDR_C EQU 2000
6
7 FFFFE0 input equ $ffffffe0
8 FFFFE1 output equ $ffffffe1
9
10 X:000FA0 ORG x:ADDR_A
11 X:000FA0 DC 0.4
12
13 Y:000BB8 ORG y:ADDR_B
14 Y:000BB8 DC 12
15
16

4
17 P:000100 ORG p:$100
18
19 P:000100 60F400 MOVE #ADDR_A,R0
000FA0
20 P:000102 64F400 MOVE #ADDR_B,R4
000BB8
21 P:000104 61F400 MOVE #ADDR_C,R1
0007D0
22
23 P:000106 061480 do #$14,_en
00010C
24
25 P:000108 0960A0 movep y:input,x:(r0) ;
отримання інформації
26
27 P:000109 C08000 MOVE x:(R0),x0 y:(R4),y0
28 P:00010A 2000D2 MAC x0,y0,A
29 P:00010B 000000 NOP
30
31 P:00010C 09C821 movep a0,y:output ;
виведення в зовнішній пристрій
32
33 _en:
34 P:00010D 000000 nop

0 Помилки
0 Попередження

Ця програма аналогічна програмі множення сигналу на константу, що


зустрічалася вам у попередніх лабораторних роботах. Вона також здійснює
множення сигналу на дійсну константу. Однак, наведена в цій роботі,
програма модифікована для демонстрації найпростіших команд введення-
виведення. Зверніть увагу на такий фрагмент:

MAC x0,y0,A

Команда, що вже зустрічалася раніше, належить до однієї з


фундаментальних команд цієї варіації мови асемблера. Ця команда множить
вміст регістрів X0 і Y0 і підсумовує отриманий результат із вмістом регістра
A.

3.3 Підготовка вихідних файлів


5
1. У меню "Пуск" виберіть пункт "Виконати". На панелі, що з'явилася,
клацніть по кнопці "Обзор". Далі у вікні, що відкрилося, увійдіть у
директорію C:\Vc і виділіть у ній файл Vc.com.

2. Натисніть кнопку "Відкрити". Повернувшись таким чином на


вихідну панель меню "Виконати", клацніть мишею по кнопці "ОК".

3 Відкриється вікно графічної оболонки Volkov commander. Далі


робота може виконуватися, як у повноекранному режимі, так і у віконному
режимі.

4. За допомогою комбінації клавіш "Alt" + "F1" слід перейти на


робочий диск "Е:", в якому знайти папку "MOTOROLA" і увійти в
неї.

5. У правій панелі графічної оболонки натисніть "Shift" + "F4". У вікні,


що відкрилося, введіть ім'я програми (prog5.asm) і натисніть "Enter".
5. На запитання про те, який файл задати - виберіть пункт меню "New
file" і натисніть "Enter".
У вікні вбудованого редактора, що з'явилося, введіть текст навчальної
програми (Рис. 3.1)

6
Рисунок 3.1 - Введення навчальної програми

6. Закінчивши введення програми, натисніть кнопку "F2" для


збереження її у файл prog5.asm далі - натисніть "Esc" для виходу з вікна
редактора.
Якщо все було виконано правильно - серед файлів у директорії
з'явиться файл з ім'ям Вашої програми та розширенням .asm
Введення тексту вихідної програми закінчено.

3.4 Створення виконуваного абсолютного модуля файлу, що


виконується

1. У командному рядку введіть таку директиву:

E:\MOTOROLA>asm.bat prog5.asm

і натисніть "Enter"

2. Після виконання трансляції на екрані з'являться результати


трансляції файлу програми. Для докладної інформації про результати
трансляції необхідно звернутися до файлу лістингу.

3. Після виконання трансляції необхідно переглянути файл лістингу.


Для цього необхідно знайти у списку файлів файл prog5.lst і натиснути
клавішу "F3" виклику вбудованого переглядача графічної оболонки.
На екрані з'явиться файл лістингу з результатами трансляції файлу.
Якщо програму було набрано правильно, то в тексті програми не буде
жодних повідомлень про помилки, а наприкінці лістингу буде поміщено
повідомлення

0 Помилки
0 Попередження

У разі успішного виконання компіляції в директорії з'явиться файл


абсолютного вихідного модуля prog3.cld У разі виникнення помилок
зверніться до пункту 4.3 попередньої лабораторної роботи.

3.5 Створення файлу введення

1. У правій панелі графічної оболонки натисніть "Shift" + "F4". У вікні,


що відкрилося, введіть ім'я
x.io

першого файлу введення-виведення і натисніть "Enter".


7
2. На запитання про те, який файл задати - виберіть пункт меню "New
file" і натисніть "Enter".
У вікні вбудованого редактора, що з'явилося, введіть числове значення
(1 2 3 4 5 5 5), яке має надійти на вхід симулятора. Ви вже вивчали формати
файлів введення, тому маєте зрозуміти, що означає дана послідовність (Рис.
3.2)

8
Рисунок 3.2 - Вміст файлу введення x.io

Закінчивши введення, натисніть кнопку "F2" для збереження файлу,


далі - натисніть "Esc" для виходу з вікна редактора.
Якщо все було виконано правильно - серед файлів у директорії
з'явиться файл з іменем X.IO
Створення файлу введення закінчено.

3.6 Створення файлу виведення

1. У правій панелі графічної оболонки натисніть "Shift" + "F4". У вікні,


що відкрилося, введіть ім'я
y.io

першого файлу введення-виведення і натисніть "Enter".

2. На запитання про те, який файл задати - виберіть пункт меню "New
file" і натисніть "Enter".
У вікні вбудованого редактора, що з'явилося, введіть числове значення
"0". Далі - натисніть кнопку "F2" для збереження файлу, далі - видаліть
введене значення. Натисніть "Esc" для виходу з вікна редактора.

9
Якщо все було виконано правильно - серед файлів у директорії
з'явиться порожній файл з іменем Y.IO
Створення файлу виведення закінчено.

Для завершення роботи з графічною оболонкою натисніть клавішу


виходу з графічної оболонки "F10" і закрийте вікно графічної оболонки
Volkov commander.

4. Робота в середовищі симулятора.

4.1 Запуск симулятора та дії із завантаження програми

1 Відкрийте основне вікно симулятора, для чого, увійшовши в


директорію
E:\MOTOROLA\gui563\BIN клацніть двічі по файлу з ім'ям Gui56300.exe

2. У вікні емулятора, що відкрилося, будуть розташовані два внутрішні


вікна Command і Session. Їх слід закрити клацанням миші по кнопках
закриття цих вікон.

3. Встановіть робочу директорію симулятора. Для цього увійдіть у


пункт меню FILE і послідовно виберіть такі підпункти меню

Файл, шлях, набір...

У вікні, що відкрилося, виберіть робочий каталог (Motorola) і клацніть


мишею по кнопці Select
Робочу директорію симулятора вибрано.

10
Рисунок 4.1 - Встановлення робочої директорії симулятора

4. Завантажте в пам'ять симулятора скомпонований файл робочої


програми.

Для цього слід послідовно вибрати такі пункти меню:


File,Load, Memory COFF У вікні завантаження файлу, що з'явилося,
клацніть мишею по кнопці File.
Далі у вікні вибору файлу знайдіть файл program5.cld, клацніть по
ньому мишею і натисніть кнопку "Відкрити". Далі у вікні завантаження
файлу натисніть ОК.

11
Рисунок 4.2 - Завантаження в пам'ять симулятора скомпонованого файлу
робочої програми.

Скомпонований файл робочої програми завантажено в пам'ять


симулятора.

5. Відкриємо вікно асемблера програми (Рис. 4.3)

Вікна, збірка

12
Рисунок 4.3 - Вікно асемблера з текстом робочої програми

Перепишіть текст програми в протокол. Зверніть увагу на команду і те,


яким чином виглядають мітка команди в середовищі симулятора.

4.2 Підключення файлу введення

1. У меню File виберіть пункт Input і далі - Open. Далі в меню, що


з'явилося, заповніть такі поля (Рис. 4.4):

Простір пам'яті: y
Адреса: $ffffe0

Це буде відповідати налаштуванням підключаємого файлу введення.


Далі клацніть по кнопці "File" і в меню, що відкрилося, виберіть файл
x.io і клацніть по кнопці "Відкрити". Назва файлу з'явиться у вікні "File
name" меню підключення файлу. Далі слід натиснути "ОК". Файл введення
під'єднано.

13
Рисунок 4.4 - Відкриття файлу введення

4.3 Підключення файлу виведення

Виконується аналогічно пункту 4.2

1. У меню File виберіть пункт Output і далі - Open Далі в меню, що


з'явилося, заповніть такі поля:

Простір пам'яті: y
Адреса: $ffffe1

Зверніть увагу на те, як значення, що вводяться, співвідносяться з


текстом програми
Далі клацніть по кнопці "File" і в меню, що відкрилося, виберіть файл
y.io і клацніть по кнопці "Відкрити". Назва файлу з'явиться у вікні "File
name" меню підключення файлу. Далі слід натиснути "ОК". Файл введення
підключено.

14
4.4 Виконання програми в середовищі симулятора

1 Відкрийте два вікна, що демонструють x- і y- області пам'яті


процесора. Для цього виберіть такі пункти меню:

Windows,пам'ять

У ньому виберіть підпункт x mem space натисніть ОК.


Відкриється вікно дампа пам'яті Х.
2 Повторіть послідовність дій, але цього разу виберіть
область y mem space. Відкриється вікно дампа області пам'яті Y, аналогічне
пам'яті X.
3. Далі відкрийте командне вікно внутрішніх регістрів процесора:

Windows,Register

далі в меню вибрати Core і натиснути ОК.


Відкриється вікно внутрішніх регістрів процесора (Рис. 4.5)

Рисунок 4.5 - Загальний вигляд симулятора після виконання пункту 3

15
Після цього слід відкрити пункт меню Windows, Watch і у вікні
Expression введіть значення LC. Це лічильник циклів, який використовується
командою DO.
Далі, послідовно виберіть пункти меню Windows, Tile, щоб
розташувати вікна за порядком (Рис. 4.6)

Рисунок 4.6 - Загальний вигляд симулятора з усіма необхідними вікнами

Симулятор готовий до виконання завдання.

5. Складіть таблицю виконання програми


(згідно зі зразком Табл. 4.1)

16
Таблиця 4.1

Значення регістрів процесора

Мнемоніка Адресні регістри Регістри даних


асемблера
R0 R1 R4 X0 Y0 A A0

Перемістити
#>$fa0,r0

6. Покроково виконайте дещо програму (клацаючи мишею по кнопці


Step, доти, доки не буде виконано два цикли поспіль), заповнюючи таблицю
даними для кожного кроку програми.

Зверніть увагу на значення, яке прийме лічильник LC після першого


кроку програми. Чому воно дорівнюватиме? Як зміниться після закінчення
циклу і повернення до вихідної команди? (Рис. 4.7 - підказка ^_^)

17
Рисунок 4.7 - Стан регістрів процесора після виконання команди DO
вперше.

7. Продовжіть виконання програми в безпосередньому режимі. Для


цього відкрийте меню

Execute, Go...

У ньому, у вікні Adress слід ввести адресу $100, далі відмітити


галочкою вікно Go to Breakpoint і у Break number вибрати #`1 (див. Рис.
4.8).
Не намагайтеся покроково виконати програму до кінця (цикл має бути
повторений двадцять разів).

8. Після виконання програми знову запустіть графічну оболонку


Volkov commander.
(У меню "Пуск" виберіть пункт "Виконати". На панелі, що з'явилася,
клацніть по кнопці "Огляд". Далі у вікні, що відкрилося, увійдіть у
директорію C:\Vc і виділіть у ній файл Vc.com.

Натисніть кнопку "Відкрити". Повернувшись таким чином на вихідну


панель меню "Виконати", клацніть мишею по кнопці "ОК".

18
За допомогою комбінації клавіш "Alt" + "F1" слід перейти на робочий
диск "Е:", в якому знайти папку "MOTOROLA" і увійти в
Ні)
8. Знайдіть і перегляньте ("F3") файл виведення y.io Запишіть його
вміст.
Якщо все було виконано правильно - у файл виведення буде записано
такий результат - Рис. 4.8

Рисунок 4.8 - Результат виконання програми.

4 Домашнє завдання

1 Вивчити ключові положення за методичним посібником і


рекомендованою літературою.
2. Підготувати протокол для виконання роботи.
3 Переписати в протокол лабораторної роботи текст навчальної
програми.
4 Намалювати в протоколі таблицю виконання програми (таблиця 4.1
цього посібника). Таблиця має складатися з 8-9 колонок.

19
5 Підготовка до роботи із симулятором

1 Увімкнути комп'ютер
2 Викликати програму Провідник
3 Увійти в директорію E:\Students\MOTOROLA\

6 Лабораторне завдання

По черзі виконати всі пункти ключового положення, відзначаючи


характерні моменти роботи симулятора.

7 Зміст звіту

1 Текст навчальної програми.


2 Таблиця виконання програми.
3. Значення файлу виведення.

8 Запитання для самоконтролю

1 Скільки разів буде виконано цикл навчальної програми?


2 Яку функцію виконує команда ENDDO?
3 Який вигляд має мітка кінця циклу?
4 Що вказується замість мітки циклу під час виконання команди в
середовищі симулятора?
5 У чому полягає відмінність між статичним і динамічним циклами?

8 Рекомендована література

1. М.С. Купріянов, Б.Д. Матюшкін, "Цифрова обробка сигналів:


процесори, алгоритми, засоби проектування", вид. 2-е перероблене,
Політехніка, СПб 2000р.
2. А. Солоніна, Д. Улахович, Л. Яковлєв, "Цифрові процесори обробки
сигналів фірми Motorola", СПб, БХВ-Петербург, 2000.
3. Сайт фірми Motorola http://www.mot.com

20

You might also like