3. КОНТРОЛЬНІ ЗАПИТАННЯ
3.1. Як запустити на виконання компілятор СР/М ?
3.2. Які внутрішні команди має система СР/М ?
3.3. Як скомпілювати та зібрати виконуючий модуль в СР/М ?
3.4. Які команди відлагодження програм має система СР/М ?
3.5. Що таке програмна модель мікропроцесора КР580ВМ80А ?
3.6. Скільки і якої розмірності є регістрів в мікропроцесорі КР580ВМ80А ?
3.7. Як відображений регістр прапорців у відлагоджувачі програм СР/М ?
4. ЛАБОРАТОРНЕ ЗАВДАННЯ
4.1. Набрати, скомпілювати та запустити програму задану викладачем .
4.2. Опрацювати осноні команди відлагоджувача програм СР/М.
5. ЗМІСТ ЗВІТУ
5.1. Титульний лист.
5.2. Мета роботи, теоретичні відомості.
5.3. Лабораторне завдання.
5.4. Результати виконання пунктів завдання.
5.5. Висновок та аналіз помилок допущених при роботі.
6. ЛІТЕРАТУРА
6.1. Микропроцессоры и микропроцессорные системы:Учебн. пособие для вузов/Под ред. В.Б. Смолова.-М.: Радио и связь,1981.
6.2. Калабеков Б.А., Микропроцессоры и их применение в системах передачи и обработки сигналов: Учебн. пособ. для вузов.-М.: Радио и связь,1988.
6.3. Лихтницендер Б.Я., Кузнецов В.Н., Микропроцессоры и вычислительные устройства в радиотехнике: Учебн. пособие.-К.: Вища школа,1988.
6.4 Справочник по микропроцессорным устройствам /А.А. Молчанов, В.И.
Корнейчук, В.П. Тарасенко, Д.А. Россошинский.-К.: Техніка,1987.
МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
Національній університет "Львівська політехніка"
ЗАСОБИ КОМПІЛЯЦІЇ, ЛІНКУВАННЯ І НАЛАГОДЖЕННЯ ПРОГРАМ В СР/М ДЛЯ МІКРОПРОЦЕСОРА Intel 8080 (КР580ВМ80А)
МЕТОДИЧНІ ВКАЗІВКИ
до лабораторної роботи №1
з курсу "Архітектура комп’ютерів"
для студентів базового напряму 6.08.04 "Комп'ютерні науки"
ЗАТВЕРДЖЕНО
на засіданні кафедри САП
Протокол №9 від 2007р..
ЛЬВІВ 2007
ЗАСОБИ КОМПІЛЯЦІЇ , ЛІНКУВАННЯ І НАЛАГОДЖЕННЯ ПРОГРАМ В СР/М ДЛЯ МІКРОПРОЦЕСОРА Intel 8080 (КР580ВМ80А). Методичні вказівки до лабораторної роботи №1 з курсу "Комп'ютери та мікропроцесорні системи" для студентів базового напряму 6.08.04 "Комп'ютерні науки" /Укл. Панчак Р.Т., Процько І.О., Теслюк В.М. - Львів: НУ"ЛП", 2007р.-6с.
Укладачі: Панчак Роман Теодорович, ст. викл.,
Процько Ігор Омелянович, к.т.н., ст. викл.,
Теслюк Василь Миколайович, к.т.н., доц.,
Відповідальний за випуск: Ткаченко С.П., к.т.н., доц.
Рецензенти: Каркульовський В. І., к.т.н., доц.,
Стех Ю.В., к.т.н., доц.
1. МЕТА РОБОТИ
Вивчити засоби компіляції, лінкування і налогоджування програм за допомогою компілятора СР/М для мікропроцесора Intel 8080 (КР580ВМ80А).
2. КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ
СР/М (Control Program for Microprocessоrs) - операційна система для МПС (мікропроцесорних систем) на базі мікропроцесорів 8080, 8085, Z80, К580. Це діалогова система, розрахована на роботу з одним користувачем, що забезпечує файлову організацію програм і даних. Діалог організовується за допомогою команд системи. Набір команд, що найбільш використовуються подано в підрозділі 2.1.
2.1 Внутрішні команди СР/М
DIR (Роздрук списку файлів):
DIR Друкувати список файлів текучого диску;
DIR *.* Друкувати список усіх файлів розміщених на текучому
диску;
DIR *.ext Друкувати список усіх файлів з розширенням "ext";
DIR filename.* Друкувати список усіх файлів з ім'ям "filename";
DIR filename.ext Друкувати ім'я тільки вказаного файлу.
TYPE (Проглянути текстовий файл):
TYPE filename.ext Проглянути на консолі файл " filename.ext "
REN (Зміна назви файлу):
REN newname.ext=oldname.ext Поміняти ім'я файлу з " oldname.ext "
на " newname.ext".
SAVE (Збереження оперативної пам'яті у файл на диску):
SAVE n filename.ext Записати n сторінок оператівної пам'яті (одна сторінка
= 256 байтів), починаючи з адреси 100h, на диск у файл
"filename.ext".
ERA (Затерти):
ERA filename.ext Затерти вказаний файл;
ERA filename.* Затерти усі файли з ім'ям " filename ";
ERA *.ext Затерти усі файли з розширенням "ext";
ERA *.* Затерти усі файли на диску.
2.2 Робота з компілятором СР/М
Набір тексту програми здійснюється любим текстовим редактором. Файли, що містять початкові тексти програм пишуть з розширенням filename.asm .
Компілятор СР/М запускається на виконання командою c.exe . Після цього з'являється промпт - [cpm]. Для виходу з системи набираєм [cpm] dos .
Для компіляції необхідно запустити команду [cpm] m filename.asm . В результаті компіляції в СР/М утворяться файли: filename.prn .
Після компіляції необхідно зібрати програму у виконавчий модуль, командою [cpm] l filename.asm . В результаті отримаєм файли filename.com
Зкомпільовану та злінковану програму необхідно перевірити у режимі відлагодження. Для запуску програми у відлагоджувачі запускаєм команду [cpm] d filename.com .
2.3 Інструментальні засоби динамічного відлагодження програм
Команди відлагодження програми: DDT VERS 1.0
D Вивести тег (192 комірок) пам'яті у шістнадцятковому форматі вміст з текучої та подальших комірок;
Наприклад, вивід тегу пам'яті з адреси 100h по 1BFh, (адреси вказані на початку рядків, а далі байти інформації записані по адресах від 0 до F) :
DDT VERS 1.0
-D
0100 01 ВС 0F 56 67 78 89 90 8C 65 54 34 D1 11 45 38
0110 62 34 78 4A 29 30 C0 8F 45 D4 09 38 88 9E 44 02
0120 94 0F 69 59 4B 39 E2 72 8C 92 44 E0 72 51 F2 77
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
01B0 33 44 C6 78 11 D0 77 45 F4 53 B4 58 A5 28 39 46
D start Вивести тег пам'яті у шістнадцятковому форматі, починаючи з комірки, яка розмищена за вказаною адресою ("start");
D start,end Вивести комірки пам'яті у шістнадцятковому форматі, починаючи з адреси "start" і закінчуючи адресою "end";
F start,end,data Записати у файл усі комірки пам'яті з адреси "start" до адреси " end " шістнадцяткове значення " data ";
Ifilename.ext Утворити блок управління файлом і записати його під ім'ям "filename.ext " для того, щоб можна було завантажити файл з таким ім'ям в оперативну пам'ять за допомогою команли " R ";
R Завантажити в оперативну пам'ять вміст файлу, ім'я якого вказане в команді "I" починаючи з текучої комірки;
R start Завантажити в оперативну пам'ять вміст файлу, ім'я якого вказане в команді "I" починаючи з комірки за адресою "start";
L Реасемблювати і вивести на консоль вміст подальших комірок пам'яті починаючи з текучої комірки;
L start Реасемблювати і вивести на консоль вміст подальших комірок пам'яті починаючи з комірки за адресою "start";
L start,end Реасемблювати і вивести на консоль вміст подальших комірок пам'яті починаючи з комірки за адресою "start" і закінчуючи адресою "end";
S start Вивести в шістнадцятковому форматі і змінити вміст комірок пам'яті за адресою " start ", продовжуючи обробку подальших комірок пам'яті до вводу символа ".";
A start Вставити, починаючи з адреси "start", оператор мови Асемблера. Продовжувати обробку подальших комірок пам'яті до вводу символа ".";
M start1,end1,start2 Скопіювати вміст області пам'яті, яка розміщена з адреси "start1", по адресу "end1", в іншу область пам'яті, що розміщена з адреси "start2";
G Виконати усю програму без переривань, починаючи з текучої адреси;
Gstart Виконати програму без переривань, починаючи з адреси "start";
Gstart,end Виконати програму без переривань, починаючи з адреси "start" і перервати виконання в точці за адресою "end";
Gstart,end1,end2 Виконати програму без переривань, починаючи з адреси "start" і перервати виконання або в точці за адресою "end1", або в точці за адресою "end2";
Gend Виконати програму без переривань, з текучої адреси і перервати виконання в точці за адресою "end";
Gend1,end2 Почати виконання програми без переривань, починаючи з текучої адреси і перервати виконання або за адресою "end1", або за адресою "end2";
X Вивести текучий вміст регістрів центрального процесора;
Наприклад, після виконання команди X на екран виведеться рядок:
C1Z0M1E0I0 A=00 B=0000 D=0000 H=0000 S=0100 P=0100 LXI B,0FBC
Xregister Вивести вміст регістра "register" центрального процесора.
Unumber Виконати "number" машинних інструкцій і після їх завершення вивести вміст регістрів центрального процесора;
Tnumber Трасування, виконання "number" машинних інструкцій, роздрукувати вміст регістрів центрального процесора після виконання кожної інструкції;
Наприклад, після виконання команди T на екран виведеться рядок виконання команди LXI B,0FBC :
C0Z0M0E0I0 A=00 B=0FBC D=0000 H=0000 S=0100 P=0103 JMP 013D
2.4 Програмні засоби організації програми
Директиви асемблера визначають порядок компілювання, розміщення в пам'яті інформації, присвоюють значення символьним іменам, резервують пам'ять та виконують ряд інших функций. Директиви або псевдокоманди не виконують дій над даними, а лиш використовуються як задають повідомлення в процесі компіляції на машинну мову. На початку асемблерної програми для МП КР580ВМ80А необхідно використовувати директиву ORG. Формат директиви:
[мітка:] ORG < вираз > ,
< вираз > директиви задає 16-ти бітову адресу, яка вказує комірку пам'яті в яку буде завантажуватись перший байт наступної команди або байт даних. Для програм відлагоджувача СР/М рекомендується на початку асемблерної програми вказувати директиву ORG з заданням початкової адреси 100 h, наприклад
ORG 100h ; Задається абсолютний адрес 100h
LXI H, area1 ; Адрес=100h
LXI D, area2 ; Адрес=103h
. . . .
HLT ; Остання команда
Програмною моделю мікропроцесора називають сукупність апаратних вузлів однокристальної інтегральної схеми (КР580ВМ80А), вміст і стан яких можна аналізувати та змінювати за допомогою команд програми.
Мікропроцесор КР580ВМ80А містить фіксовану систему з 78 мнемонік команд, які включають 111 операцій для реалізації прикладних програм. Інструментальні засоби динамічного відлагодження програми дозволяють конролювати основні програмно-доступні вузли МП під час виконання програми: C0Z0M0E0I0 A=00 B=0FBC D=0000 H=0000 S=0100 P=0103
C,Z,M,E,I - регістр прапорців (C-перенесення, Z-нуль, M-знак, E-допоміжне перенесення, I-парності кількості одиниць).
А - акумулятор (8- розрядний результат заноситься в А),
B (B,C), D(D,E), H(H,L) - регістрові пари(включають по парі 8-розрядних регістрів),
B,C,D,E,H - 8-розрядні регістри загального користування (РЗК),
S (SP) - 16- розрядний вказівник вершини стеку (stack pointer),
P (PC) - 16- розрядний лічильник команд (program counter).
ALU
M (bite)
B C
D E
H L
A
SP
PC
C
Z
ME
I
Схема 1. Програмна модель МП КР580ВМ80А.