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

Міністерство освіти і науки України

Кіровоградський національний технічний університет

Кафедра програмного забезпечення

Методичні вказівки

до лабораторних робіт

Дисципліна: Машино-орієнтоване програмування ”

Розробив: асистент Дрєєва Г.М.

м.Кіровоград 2011

Вступ

Мікропроцесор (МП) – пристрій, що виконує функції програмної обробки інформації, які аналогічні функціям центрального процесора звичайної ЕОМ (електро - обчислювальної машини). МП побудовано на одній схемі великого степеню інтеграції (ВІС) або в вигляді модуля, що містить декілька ВІС.

Рані ЕОМ виконувались з застосуванням тисяч електронних ламп. Вони були громіздкі та незручні. Наступне покоління ЕОМ будувалось на транзисторах, що зробило їх значно надійнішими, зменшило їх розміри та коштовність. Це поклало початок практичному використанню комп’ютера. В 1960 році були виготовлені маленькі та потужні ЕОМ на основі сотень вентилів, тригерів та інших подібних їм інтегральних схем. З розвитком напівпровідникової технології стало можливим сумістити в одній схемі декілька вентилів.

Роботи по мініатюризації ЕОМ продовжувались, і в1971 році було створено перший МП. Мікропроцесорний кристал містить тисячі вентилів і є інтегральною схемою ВІС. Крім того отримали розвиток ВІС, що зберігають тисячі біт цифрової інформації в одному корпусі.

Шина адреси

Шина даних

Шина керування

Рис.1 Схема мікропроцесорної системи

Блок

пам’яті

Пристрій введення/ виведення

МП

На рис.1 показано спрощену схему мікропроцесору КР580ВМ80.

Лабораторна робота №1

Тема: Робота з навчальним мікропроцесорним комплектом (УМК)

Мета: навчитись працювати з УМК.

Теоретичні відомості

Курс «Програмування на мові ASM-80» побудовано на основі навчального мікропроцесорного комплекту (УМК), що має МП на одному кристалі КР580ВМ80 і є МП 2-го покоління (зарубіжний аналог Intel 8080). Його розрядність становить 8біт (1байт).

Асемблер або компілятор може працювати не обов’язково на тій ЕОМ, на якій він генерує об’єктну програму. Асемблер, що працює на ЕОМ того ж типу, на якій буде виконуватися програма, називається власним асемблером або резидентним асемблером. Асемблер, що працює на іншій ЕОМ, називається крос-асемблером.

Монітор - резидентна керуюча програма діалогового взаємовідношення оператора з мікро - ЕОМ, яка виконує наступні основні функції:

  • керування роботою програмного каналу обміну з периферійними пристроями (клавіатура, дисплей, принтер);

  • створення різних режимів роботи мікро - ЕОМ і керування ними;

  • приймання різних команд оператора та їх інтерпретація процесором;

  • завантаження абсолютних програм і керування ходом їх виконання.

Монітори мають також функції відлагодження:

  • індикація змісту пам’яті та змісту регістрів ЦП;

  • модифікація змісту пам’яті та змісту регістрів ЦП;

  • виконання програми з вказаної адреси;

  • припинення виконання програми, якщо досягнуто вказану адресу, виконання вказаної команди, умови;

  • покомандне трасування (кроковий режим);

  • трасування групи команд.

Навчальний мікропроцесорний комплект (УМК)

В постійну пам’ять УМК занесено програму монітор, яка займає 1кВ і має адреси 0…3FFH. Ще 1кВ постійної пам’яті, що має адреси 400Н…7FFH, зарезервовано за користувачем. Оперативна пам’ять використовується для зберігання програм і даних, що змінюються. Оперативна пам’ять займає адреси з 800Н до BFFH та має ємність 1кВ. Остані 54 комірки оперативної пам’яті займає стек.

Пульт оператора складається з клавіатури, 6-розрядного дисплею, світлової індикації, керуючих кнопок: “СБ”- скид, “ПР”- переривання, “ШГ”- крок і перемикачів: “РБ/ШГ” - робота-крок; “КМ/ЦК” – команда-цикл.

Клавіатура складається з 24 клавіш, з них 8 – директивні, а 16 – інформаційні.

Директивні:

“П” – читання і зміна змісту пам’яті;

“РГ” - читання і зміна змісту регістрів;

“СТ” – передача керування програмі користувача;

“КС” – визначення контрольної суми масиву пам’яті;

“ЗК” – заповнення масиву пам’яті константою;

“ПМ” – переміщення масиву пам’яті в адресному просторі;

“ ” – використовується для розділення кількох змінних при введенні;

“ВП” – виконати, кінець директиви.

Інформаційні клавіші використовують для введення чисел в 16 – му коді. Клавіші від А до F використовують для ідентифікації регістрів. При помилках в роботі з клавіатурою виникає знак питання “?”

Порядок вмикання:

  1. Кнопка “~” в відтиснутому стані.

  2. Підключити до мережі змінного струму.

  3. Перемикач “РБ/ШГ” в положенні робота (відтиснутий стан).

  4. Ввімкнути УМК, натиснувши кнопку “~”.

  5. Натиснути кнопку “СБ”, після чого в крайній лівій позиції з’явиться “-”, як запрошення до роботи.

Індикація і зміна змісту пам’яті

“П” X1X2X3X4 D1D2 D3D4 “ВП”

адреса дані

Індикація і зміна змісту регістрів

“РГ” А … “ВП”

В

С

D

E

H

L

F

SL

SH

PL

PH

Передача керування програмі користувача

“СТ” Адреса1 Адреса2 Адреса3 “ВП”

Адреса1 – початкова адреса програми, Адреса2 і Адреса3 – адреси виконання переривання програми.

Визначення контрольної суми масиву пам’яті

“КС” Адреса1 Адреса2 “ВП”

Заповнення масиву пам’яті константою

“ЗК” Адреса1 Адреса2 D “ВП”,

де D – байт даних, що заносяться в пам’ять.

Переміщення масиву пам’яті в адресному просторі

“ПМ” Адреса1 Адреса2 Адреса3 “ВП”,

Адреса3 не повинна бути в межах адрес 1 та 2.

Приклад: ( 2 * ( 56 – 2 * 18 ) – 19 ) / 2

Блок – схема Програма

ORG 800H ; початкова адреса

800 3E 12 MVI A,18 ; A  18

802 87 ADD A ; A  A + A

803 47 MOV B,A ; B  A

804 3E 38 MVI A,56 ; A  56

806 90 SUB B ; A  A-B

807 87 ADD A ; A  A + A

808 D6 13 SUI 19 ; A  A-19

80A 37 STC ;

80B 3F CMC ; ділення на 2

80C 1F RAR ;

80D 76 HLT

A  18

A  A + A

A  A-B

A  A+A

A  A-19

ділення на 2

B  A

A  56

Завдання:

  1. Набрати на УМК об’єктний код запропонованої програми. Запустити її і перевірити результат.

  2. Скласти алгоритм та написати програму для обчислення виразу 2*N + N/2 + N,

де N – номер варіанту в журналі.

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

  1. Скільки байт має УМК?

  2. Скільки байт займає постійна пам’ять?

  3. Скільки байт займає оперативна пам’ять?

  4. З якої адреси користувач може писати програми?

  5. За допомогою якої директиви програму записують в УМК?

  6. За допомогою якої директиви програму запускають на виконання?

  7. За допомогою якої директиви можна переглянути вміст регістрів процесора?

Звіт до кожної лабораторної роботи повинен мати:

  1. Титульна сторінка (додаток 1).

  2. Завдання.

  3. Алгоритм у відповідності з держ. стандартами (додаток 2).

  4. Лістинг програми.

  5. Результати.

Лабораторна робота №2

Тема: Послідовні програми

Мета: навчитися використовувати послідовне програмування для рішення конкретних задач

Теоретичні відомості

Приклад: Обчислити Z, враховуючи, що X і Y знаходяться в пам’яті за мітками XXX i YYY відповідно. Результат розмістити за міткою ZZZ.

Z=(2X + 25 – 4Y )/2 + 12, X=10, Y=16

Блок – схема Програма

ORG 800H ; початкова адреса

800 3A 18 08 LDA XXX ; A  (XXX)

803 87 ADD A ; A  A + A

804 C6 19 ADI 25 ; A  A+25

806 47 MOV B,A ; B  A

807 3A 19 08 LDA YYY ; A  (YYY)

80A 87 ADD A ; A  A + A

80B 87 ADD A ; A  A + A

80C 4F MOV C,A; C  A

80D 78 MOV A,B; A  B

80E 91 SUB C; A  A – C

80F 37 STC ;

810 3F CMC ; ділення на 2

811 1F RAR ;

812 C6 0C ADI 12 ; A  A+12

814 32 1А 08 STA ZZZ ; (ZZZ)  (A)

817 76 HLT

818 0A XXX: DB 10

819 10 YYY: DB 16

81A 00 ZZZ: DB 0

END

A  (XXX)

A  A + A

A  (YYY)

A  A+A

A A+A

C A

A B

A  A+25

B  A

A  A- С

ділення на 2

A  A+12

(ZZZ) (A)

З авдання: Написати алгоритм і програму у відповідності з вказаним варіантом. Програму розпочати з адреси 800H+N, де N – номер варіанту. Результат розмістити за міткою ZZZ. Набрати програму на УМК . Запустити і перевірити результат.

Варіант №1. Z=(5X – 4Y )/2 - 9, X=30, Y=6

Варіант №2. Z=2(X + 2Y ) + X/2, X=10, Y=10

Варіант №3. Z=(X/2 – 4Y )/2 + 26, X=1, Y=6

Варіант №4. Z=5X – Y + 126/2 , X=10, Y=26

Варіант №5. Z=120/2 + 3(X+2Y - 12), X=30, Y=20

Варіант №6. Z=2(X + 2Y ) - 25, X=31, Y=8

Варіант №7. Z=2Y + 4X + 100, X=10, Y=2

Варіант №8. Z= 120 + X/4 – 2Y , X=16, Y=6

Варіант №9. Z=2(X + 2Y) - 126/2, X=40, Y=10

Варіант №10. Z=(3X + 2Y +15 )/2, X=13, Y=7

Варіант №11. Z=(100 + 2X)/2 + 4Y, X=12, Y=1

Варіант №12. Z=(3X + Y + 64 )/2 + 6, X=4, Y=15

Варіант №13. Z= 56 + 3Y + X, X=60, Y=2

Варіант №14. Z=2X + Y - 6, X=21, Y=16

Варіант №15. Z=(2X + 3Y )/2 + 16, X=3, Y=38

Варіант №16. Z=X + 5Y - 8, X=120, Y=1

Варіант №17. Z=(3X – 2Y )/4 - 9, X=10, Y=4

Варіант №18. Z=4(Y + 5 ) + X/2, X=12, Y=18

Варіант №19. Z=(X/4 – 2Y )/2 + 16, X=24, Y=6

Варіант №20. Z=110/2 + 3(X+4Y - 12), X=20, Y=10

Варіант №21. Z=4(X + 3Y ) - 12, X=3, Y=18

Варіант №22. Z=2Y + 3X + 10, X=15, Y=12

Варіант №23. Z= (120 + X)/4 – Y , X=10, Y=14

Варіант №24. Z=2(3X + 2Y) - 126/4, X=4, Y=8

Варіант №25. Z=(5X + 4Y - 13 )/2, X=18, Y=17

Варіант №26. Z=(120 + 3X)/2 + 4Y, X=19, Y=7

Варіант №27. Z=(4X + 5Y - 34 )/2 + 16, X=2, Y=10

Варіант №28. Z= 125 - 3Y + X, X=60, Y=20

Варіант №29. Z=(5X + Y – 6)/2, X=2, Y=56

Варіант №30. Z=(3X - 2Y )/4 + 96, X=3, Y=3

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

  1. Як визначити скільки байт займає команда?

  2. Скільки байт займає команда MVI ?

  3. Як здійснити множення на 4 та ділення на 4?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]