Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
практичні по МПС1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
5.91 Mб
Скачать

Література:

  1. Белов А. В. Самоучитель по микропроцессорной технике. СПб., Наука и техника. 2003 – 224с.

  2. Мікропроцесорна техніка. Підручник /Якименко Ю. І, Терещенко Т. О. таінші/ - 2-ге вид., переробл. та доповн. – К.: ІВЦ «Видавництво «Політехніка»», 2004. – 440 с.

  3. Микропроцессорные системы. Под ред. Д. В. Пузанкова. СПб., Политехника. 2002 – 935с.

  4. Юров В. Assembler: Практикум. — СПб.: Питер, 2001.

Техніка безпеки:

Студенти та курсанти, які виконують практичні роботи у лабораторіях, згідно з розкладом занять, повинні виконувати привила техніки безпеки, а саме:

  1. заходити у лабораторію тільки з дозволу викладача або завідуючого лабораторією;

  2. не приносити до лабораторії легко палких та отруйних речовин;

  3. без дозволу викладача або завідуючого лабораторією не вмикати ЄОМ та інші електричні прилади;

  4. чітко та своєчасно виконувати накази викладача або завідуючого лабораторією;

  5. у разі будь-якого інциденту, негайно доповісти викладачу або завідуючому лабораторією.

Послідовність виконання роботи

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.

Контрольні запитання:

  1. Перелічити арифметичні команди.

  2. Призначення команди MOV.

  3. Чим відрізняється команда ADD від ADC?

  4. Чим відрізняється команда SUB від SBB?

  5. З якими командами можна порівняти команди INC та DEC?

  6. Як завантажити будь яке значення в сегментний регістр?

  7. Чи впливають арифметичні команди на прапорці?

Форма звіту

  1. Тема, мета роботи.

  2. Текст завдання для виконання.

  3. Порядок виконання роботи.

  4. Хід виконання роботи.

  5. Висновок по роботі.

ПРАКТИЧНА РОБОТА №11

Тема: Логічні команди та розрядні матриці

Мета: Вивчити логічні команди та команди переміщення даних.

Задачі: Робота з командами: AND, OR, XOR, NOT.

Обладнання для виконання роботи:

  1. Методичні вказівки що до виконання лабораторної роботи;

  2. Персональний комп’ютер;

  3. Відповідне програмне забезпечення (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) до шифрованих даних.