- •Затверджую
- •Мікропроцесорна практика методичні вказівки для виконання практичних робіт
- •Інструкція
- •З охорони праці
- •При виконанні практичних робіт з дисципліни
- •Мікропроцесорна практика
- •Загальні вимоги
- •2. Спеціальні вимоги
- •Обов'язки курсантів та студентів до початку виконання робіт
- •2.2 Обов'язки курсантів та студентів у процесі виконання лабораторних робіт, практичних занять
- •Обов'язки курсантів та студентів при аварійних ситуаціях
- •Обов'язки курсантів та студентів після закінчення робіт
- •Практична робота №1
- •Обладнання для виконання роботи:
- •Теоретичні основи:
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Контрольні запитання:
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Контрольні запитання:
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Контрольні запитання:
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Контрольні запитання:
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Контрольні запитання:
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Контрольні запитання
- •Література:
- •Техніка безпеки:
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Контрольні запитання:
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Контрольні запитання:
- •12.4 Структурна схема програми
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Література:
- •Техніка безпеки:
- •Послідовність виконання роботи
- •Хід виконання роботи
- •Контрольні запитання:
- •Форма звіту
Література:
Белов А. В. Самоучитель по микропроцессорной технике. СПб., Наука и техника. 2003 – 224с.
Мікропроцесорна техніка. Підручник /Якименко Ю. І, Терещенко Т. О. таінші/ - 2-ге вид., переробл. та доповн. – К.: ІВЦ «Видавництво «Політехніка»», 2004. – 440 с.
Микропроцессорные системы. Под ред. Д. В. Пузанкова. СПб., Политехника. 2002 – 935с.
Юров В. Assembler: Практикум. — СПб.: Питер, 2001.
Техніка безпеки:
Студенти та курсанти, які виконують практичні роботи у лабораторіях, згідно з розкладом занять, повинні виконувати привила техніки безпеки, а саме:
заходити у лабораторію тільки з дозволу викладача або завідуючого лабораторією;
не приносити до лабораторії легко палких та отруйних речовин;
без дозволу викладача або завідуючого лабораторією не вмикати ЄОМ та інші електричні прилади;
чітко та своєчасно виконувати накази викладача або завідуючого лабораторією;
у разі будь-якого інциденту, негайно доповісти викладачу або завідуючому лабораторією.
Послідовність виконання роботи
1.Прочитати методичні вказівки, що до виконання практичної роботи.
2.Записати у зошит порядок виконання практичної роботи, наприкінці заняття записати результат та висновки практичної роботи.
3. Зробити усі частини які пропонуються в практичній роботі.
4. Відповісти на контрольні запитання викладача (або виконати тестові завдання).
Хід виконання роботи
Завантажити Emu8086 v2.57
Завдання№1: Передати дані з регістра CL у регістр BL. До виконання команди регістр BL містить число 101011111, а CL – 00001111.
Завдання№2: Переслати вміст комірки пам’яті DS:[100EH] у регістр CX.
Завдання№3:Завантажити сегментний регістр DS початковим значенням 4000Н.
Завдання№4:Додати вміст двох регістрів: CL та DL, якщо вміст регістрів взяти по варіанту з таблиці.
варіант |
CL |
DL |
варіант |
CL |
DL |
1 |
10011111 |
10011001 |
16 |
11000000 |
10110100 |
2 |
11111101 |
11001101 |
17 |
11010000 |
10100101 |
3 |
11110111 |
10101110 |
18 |
11100000 |
11011110 |
4 |
11100001 |
10011111 |
19 |
11110000 |
10101111 |
5 |
10100001 |
10101001 |
20 |
10010001 |
10000101 |
6 |
10000110 |
10111010 |
21 |
10101111 |
11001010 |
7 |
10011000 |
10011011 |
22 |
10111111 |
00110011 |
8 |
11111000 |
10000110 |
23 |
01101111 |
01001000 |
9 |
11110001 |
11010101 |
24 |
01011111 |
10000001 |
10 |
11101001 |
10101001 |
25 |
10011111 |
10011001 |
11 |
01111111 |
10010100 |
26 |
01011111 |
01110111 |
12 |
10010110 |
101010100 |
27 |
11001100 |
10010110 |
13 |
01011010 |
10000001 |
28 |
11111001 |
11100101 |
14 |
11111011 |
10110001 |
29 |
11101001 |
01011011 |
15 |
11110010 |
10110101 |
30 |
11001011 |
10000010 |
Завдання№5: Виконати додавання чотирибайтових операндів, які містяться в сусідніх комірках пам’яті з початковими адресами DS:1000H i DS:2000H. Результат записати у регістрах СХ та DX.
Завдання№6: Виконати віднімання від вмісту регістра АХ числа В. Завдання взяти по варіанту з наведеної таблиці:
варіант |
АХ шістн. |
В шістн. |
варіант |
АХ шістн. |
В шістн. |
1 |
1A5F |
АА |
16 |
E3E3 |
CD |
2 |
2F5D |
АВ |
17 |
6D7F |
CF |
3 |
35FF |
AC |
18 |
12FD |
CE |
4 |
67FA |
AD |
19 |
ED11 |
DA |
5 |
13DF |
AE |
20 |
BCA4 |
DE |
6 |
45BB |
AF |
21 |
F89F |
DF |
7 |
67CD |
BA |
22 |
19FF |
DC |
8 |
7B5A |
BB |
23 |
FF01 |
DB |
9 |
8DC8 |
BC |
24 |
40FA |
DD |
10 |
3D6D |
BD |
25 |
50BC |
EF |
11 |
4A3D |
BE |
26 |
60CD |
EC |
12 |
5BCD |
BF |
27 |
80EE |
ED |
13 |
ABCD |
CA |
28 |
AA88 |
EB |
14 |
123F |
CB |
29 |
BB55 |
EA |
15 |
FF41 |
CC |
30 |
CC33 |
FF |
Завдання№7: Виконати віднімання вмісту комірки пам’яті з адресою DS:1000H та числа 35Н з урахуванням позики від попередньої операції.
Завдання№8: Додати 1 до числа В із завдання №6.
Завдання№9: Відняти 1 від числа В із завдання №6.
Завдання№10: Знайти добуток двох без знакових 8-розрядних операндів, які знаходяться у регістрах DL i AL, якщо вміст даних регістрів взяти з таблиці
варіант |
DL |
AL |
варіант |
DL |
AL |
1 |
10110100 |
11000000 |
16 |
10011001 |
10011111 |
2 |
10100101 |
11010000 |
17 |
11001101 |
11111101 |
3 |
11011110 |
11100000 |
18 |
10101110 |
11110111 |
4 |
10101111 |
11110000 |
19 |
10011111 |
11100001 |
5 |
10000101 |
10010001 |
20 |
10101001 |
10100001 |
6 |
11001010 |
10101111 |
21 |
10111010 |
10000110 |
7 |
00110011 |
10111111 |
22 |
10011011 |
10011000 |
8 |
01001000 |
01101111 |
23 |
10000110 |
11111000 |
9 |
10000001 |
01011111 |
24 |
11010101 |
11110001 |
10 |
10011001 |
10011111 |
25 |
10101001 |
11101001 |
11 |
01110111 |
01011111 |
26 |
10010100 |
01111111 |
12 |
10010110 |
11001100 |
27 |
101010100 |
10010110 |
13 |
11100101 |
11111001 |
28 |
10000001 |
01011010 |
14 |
01011011 |
11101001 |
29 |
10110001 |
11111011 |
15 |
10000010 |
11001011 |
30 |
10110101 |
11110010 |
Завдання№11: Знайти результат ділення двох без знакових 8-розрядних операндів, які знаходяться у регістрах DL i AL, якщо вміст даних регістрів взяти з таблиці завдання №10.
Завдання№12: Знайти квадрат числа А. Число А взяти з таблиці.
Варіант № |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
число А |
12 |
23 |
13 |
14 |
15 |
16 |
17 |
10 |
11 |
18 |
19 |
20 |
21 |
22 |
90 |
Варіант № |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
число А |
22 |
24 |
9 |
25 |
8 |
15 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
29 |
Завдання№13: Знайти радіус кола, якщо діаметр рівний R. Значення діаметра взяти з таблиці із завдання №10. Число А=R.
Контрольні запитання:
Перелічити арифметичні команди.
Призначення команди MOV.
Чим відрізняється команда ADD від ADC?
Чим відрізняється команда SUB від SBB?
З якими командами можна порівняти команди INC та DEC?
Як завантажити будь яке значення в сегментний регістр?
Чи впливають арифметичні команди на прапорці?
Форма звіту
Тема, мета роботи.
Текст завдання для виконання.
Порядок виконання роботи.
Хід виконання роботи.
Висновок по роботі.
ПРАКТИЧНА РОБОТА №11
Тема: Логічні команди та розрядні матриці
Мета: Вивчити логічні команди та команди переміщення даних.
Задачі: Робота з командами: AND, OR, XOR, NOT.
Обладнання для виконання роботи:
Методичні вказівки що до виконання лабораторної роботи;
Персональний комп’ютер;
Відповідне програмне забезпечення (Windows 98, Microsoft Office 2000, XP, 2003, MS Excel, емулятор типу Emu8086 v2.57).
Теоретичні основи:
До логічних операцій відносяться: логічне множення (І, AND), логічне складання (АБО, OR), исключаюпдее АБО (XOR) і заперечення (NOT) Всі ці інструкції змінюють регістр ознак.
Команда AND виконує логічне множення двох операндів — о1 і о2. Результат зберігається в операнді о1. Типи операндів такі ж, як в команди ADD: операнди можуть бути 8-, 16- або 32-бітовими регістрами, адресами пам'яті або безпосередніми значеннями.
AND о1, о2
Таблиця істинності для оператора AND приведена нижче (таблиця. 11.1).
Таблиця 11.1 Таблиця істинності для оператора AND
Команда OR виконує логічне складання двох операндів — о1 і о2. Результат зберігається в операнді о1. Типи операндів такі ж, як в команди AND.
OR ol, о2
Таблиця істинності для оператора OR приведена нижче (табл.11.2).
Таблиця 11.2 Таблиця істинності для оператора OR
Команда XOR обчислює те, що так зване «виключає АБО» операндів о1 і о2. Результат зберігається в о1. Типи операндів такі ж, як в попередніх інструкцій.
Формат команди:
XOR о1, о2
Таблиця істинності для оператора XOR приведена нижче (табл.11.3).
Таблиця 11.3 Таблиця істинності для оператора ХOR
Команда NOT використовується для інверсії окремих бітів єдиного операнда, який може бути регістром або пам'яттю. Відповідно команда може бути записана в трьох різних форматах:
NOT r/m8
NOT г/ml би
NOT r/m32
Таблиця істинності для оператора NOT приведена нижче (табл.11.4).
Таблиця 11.4 Таблиця істинності для оператора NOT
Масиви бітів (розрядні матриці)
Будь-яке число можна записати в двійковій системі у вигляді послідовності нулів і одиниць. Наприклад, будь-яке 16-розрядне число складається з 16 двійкових цифр — 0 і 1. Ми можемо використовувати одне число для зберігання шістнадцяти різних станів — прапорів. Нам не потрібно витрачати місце на зберігання 16 різних змінних, адже для опису стану (включено/вимкнено) цілком достатньо 1 біта. Змінна, використовувана для зберігання прапорів, називається розрядною матрицею або масивом бітів.
Високорівневі мови програмування також використовують розрядні матриці, наприклад, при зберіганні набору значень перерахування, для економії пам'яті. Ми вже знайомі з однією розрядною матрицею, яка дуже часто використовується в програмуванні, — це регістр ознак мікропроцесора. Ми будемо дуже часто стикатися з розрядними матрицями при програмуванні різних пристроїв: відеоадаптера, звукової плати і так далі В цьому випадку зміна одного біта в розрядній матриці може змінити режим роботи пристрою. Для зміни значення окремих бітів в матриці служать логічні операції. Перший операнд задає розрядну матрицю, з якою ми працюватимемо, а другий операнд задає так звану маску, використовувану для вибору окремих бітів.
Для установки певних бітів масиву в одиницю (всі останні біти при цьому повинні залишитися без зміни) застосовується команда OR. Як маска візьміть двійкове число, в якому одиниці стоять на місці тих бітів, які ви хочете встановити в масиві. Наприклад, якщо ви хочете встановити перший і останній біти масиву, ви повинні використовувати маску 10000001. Всі останні біти залишаться незайманими, оскільки 0 OR X завжди повертає X.
Аби скинути деякі біти (встановити їх значення в 0), візьміть за маску число, в якому нулі стоять на місці тих бітів, які ви хочете скинути, а одиниці — у всіх останніх позиціях, а потім використовуйте команду AND. Оскільки 1 AND X завжди повертає X, ми скинемо лише необхідні нам біти.
За допомогою XOR також можна змінювати значення бітів, не знаючи попереднього стану. Для цього в масці встановите 1 для кожного біта, який ви хочете інвертувати (0 стане 1, а 1 стане 0), а для всіх бітів, що залишилися, встановите 0. Якщо ми виконаємо XOR двічі, то набудемо вихідного значення.
Така поведінка операції XOR дозволяє використовувати цю команду для простого шифрування: до кожного байта шифрованих даних застосовується XOR з постійною маскою (ключем), а для дешифровки той же ключ застосовується (XOR) до шифрованих даних.
