Бакалаврська робота Програмна модель 32-разядной МЕВМ фірми Motorola

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Міністерство освіти РФ

Курський державний технічний університет

Кафедра обчислювальної техніки

Стверджую

зав. Кафедрою професор

__________________Тітов В. С.

____________________________

____________________________


Випускна кваліфікаційна робота

бакалавра

Програмна модель 32-розрядного мікропроцесора фірми Motorola


Автор випускний кваліфікаційної роботи: Денисов А. Н.

Позначення випускний кваліфікаційної роботи____________________

_______________________________Группа ВМ-81

Направление____________________________________________________

Керівник роботи: __________________ к.т.н. Жмакіна А.П.


Нормоконтроль __________________ Чернецька І. Є.


З усіма питаннями звертайтеся Denisov _ Alex @ rambler. Ru

Анотація

Метою даної роботи було вивчення організації 32-розрядного мікропроцесора фірми Motorola. Ця мета може бути досягнута за допомогою написання програмної моделі даного мікропроцесора.

У ході роботи велику увагу приділено функціональним особливостям об'єкта розробки, способам організації, системі команд. Це програмне виріб може бути використане при навчанні студентів. Пояснювальна записка складається з 45 сторінок, до їх складу входить 7 таблиць і 4 рисунка.

Summary.


The purpose of the given work was the study of organization of the 32-bit microprocessor of firm Motorola. The given purpose was achieved by means of a spelling of program model of the given microprocessor.

During work the large attention is given to functional features of object of development, ways of organization, command system. The given program product can be used at training the students. The explanatory slip consists of 45 pages, their structure includes 7 tables and 4 figures.

Зміст


Вступ 4

Технічне завдання 7

2. Постановка завдання 9

Вибір засобів реалізації 10

Опис машини користувача 11

5. Інтерфейс, органи управління 33

6. Застосування програмної моделі. 37

7. Опис інтерпретатора 39

Висновок 44

Список використаних джерел 45


Введення

У сучасній техніці роль мікро-ЕОМ досить значима. Сфера їх застосування широка. Досить назвати лише кілька областей, у яких застосування 16 - і 32-розрядних МК стало буденним явищем, щоб зрозуміти, чому виробники МК приділяють їм таку увагу:

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

Для вивчення мікро-ЕОМ у Курському Державному Технічному Університеті відсутні лабораторні установки, які дозволяли б студентам ознайомитися з новими перспективними моделями різних мікропроцесорів фірми Motorola.

Практика роботи з існуючими лабораторними установками, свідчить про те, що студенти змушені витрачати більшу частину часу на рутинні операції (ассемблирование, дизасемблювання та ін.) Це пояснюється тим, що лабораторні установки мають не зручним, малофункціональний і не наочним інтерфейсом. Наприклад, як пристрій виводу використовуються шість семисегментних індикаторів, а програмний код вводиться побайтно в шістнадцятковому форматі. З метою спрощення роботи шляхом автоматизації рутинних операцій і вивчення елементної бази нових мікропроцесорів і була розроблена дана програмна модель.

Програмна модель дає широкі і зручні можливості для набору і налагодження програм (наприклад, може бути можливий одночасний перегляд всіх регістрів, пам'яті, введення команд у мнемонічних позначеннях, ассемблирование команд і т. д.).

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

Технічне завдання


1. Призначення і цілі розробки.

1.1. Змоделювати 32-розряди мікропроцесор фірми Motorola МС 68300 на рівні програмно-доступних об'єктів.

1.2. Мета роботи - створити програмну модель, використовувану для початкового знайомства з архітектурою МС 68300 і його системою команд, що дозволяє налагоджувати прості програми на мові мнемокод (Асемблера).

Характеристики об'єкта розробки.

2. Вимоги до виробу.

2.1. Функціональні вимоги.

2.1.1. Чи не кваліфіковані користувачі можуть вводити дані за запитом комп'ютера.

2.1.2. Діалоговий режим.

2.1.3. Виконання функцій:

2.1.3.1. Заборона редагування результатів навчання користувачам.

2.1.3.2. Можливість перегляду і безпосереднього редагування регістрів даних та адреси, а також дампа ОЗУ.

2.1.3.3. Розвинена система допомоги, що включає інформацію по процесору МС 68300 і його мови, а також інформацію з програмної моделі.

2.1.4.Разработанная система налагодження, що дозволяє користувачеві легко визначити помилку вводу даних.

2.1.5. Можливість трасування програм.

      1. Підтримування різних систем числення (двійкова, десяткова, шістнадцяткова).

2.1.7. Наочність і доступність інтерфейсу.

2.2. Вимоги до надійності.

2.2.1.Обеспеченіе збереження даних у файлі.

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

2.3. Стандартний інтерфейс WINDOWS - додатків.

3.Состав і зміст робіт із створення (розвитку) системи.

3.1. Граф-дерево структури системи.

3.2. Складання алгоритму майбутньої програми.

3.3. Написання тексту програми за алгоритмом.

3.4. Тестування програми.

3.5. Компонування всіх документів в єдине керівництво.


4. Вимоги до документування.

4.1. Технічне завдання.

4.2. Текст програми - роздруківка лістингу програми.

4.3. Текст програми в об'єктно-орієнтованої формі.


5. Джерела розробки.

5.1. Internet. Сайти, присвячені мікроелектроніці, зокрема www.Gaw.ru, розділ присвячений мікропроцесорах.

5.2. Жмакіна А.П. Курс лекцій по мікропроцесорах.

5.3. Фаронов В.В. Delphi 5. Навчальний курс, М., "Knowledge", 2001 рік.

5.4 Юров. В. Assembler., Санкт-Петербург, "Пітер" 2000 р.


2. Постановка завдання


Метою даної роботи є з'ясування організації, принципів роботи, системи команд мікропроцесорів. Мета повинна бути досягнута шляхом розробки програмної моделі мікро-ЕОМ на базі 32 розрядного мікропроцесора фірми Motorola.

Програмна модель повинна продемонструвати роботу 32 розрядної ЕОМ фірми Motorola. Програма працює в діалоговому режимі з користувачем, тобто існує можливість введення вихідних даних, перегляд проміжних і кінцевих результатів.

Це програмне виріб повинен наочно моделювати процес роботи процесора, тобто дозволяти вводити асемблерний код програм із застосуванням системи команд мікропроцесора і допустимих способів адресації, і виводити результат обробки. Має бути передбачений захист від некоректного введення даних. Програмне виріб повинен забезпечити наочну роботу об'єкта моделювання, з можливістю зміни проміжних результатів.

У функціональному відношенні програмне виріб повинен являти собою програму, розроблену з застосуванням стандартів інтерфейсу операційної системи Microsoft Windows.



Вибір засобів реалізації


При постановці завдання на розробку даного програмного виробу була обрана система Windows в зв'язку з найширшим розповсюдженням, доступністю і наявністю гнучких засобів розробки програмного забезпечення під цю платформу, і відсутністю таких під інші програмні платформи в наявності.

При виборі засобу розробки будь-який компілятор для системи Windows міг бути використаний для написання моделі. З найбільш поширених, таких як Microsoft Visual C + +, Borland C + +, Borland C + + Builder, Watcom C + +, Borland Delphi, Symantec C + +, Power Builder, був обраний компілятор Borland Delphi. Вибір обгрунтований широким розповсюдженням, зручністю використання, високою якістю генерованого коду даного середовища. Крім того, незважаючи на те, що Delphi є компілятором розширеної мови Pascal, програми, написані на Delphi повністю сумісні з компілятором Borland C + + Builder, який не був застосований з-за більш високих вимог до апаратних ресурсів.


Опис машини користувача


Даний процесор реалізує архітектуру, прийняту в мікропроцесорах сімейства 68000, що дозволяє використовувати великий обсяг прикладного та системного програмного забезпечення, створеного для цього сімейства. Процесор CPU32 працює з 16-розрядною шиною даних і 24-розрядною шиною адреси (адресується пам'ять до 16 Мбайт), аналогічно мікропроцессорамМС68000.
Основним архітектурним принципом функціонування процесорів сімейства 68000 є поділ їх ресурсів і можливостей залежно від класу вирішуваних завдань. Архітектура процесорів орієнтована на роздільне виконання двох класів завдань: управління роботою самої мікропроцесорної системи за допомогою системного програмного забезпечення (операційної системи - супервізора) і рішення прикладних задач користувача. Залежно від виконуваної завдання процесор CPU32 має два режими функціонування:

  • режим супервізора,

  • режим користувача.

У залежності від режиму при виконанні програм дозволяється доступ до всіх ресурсів мікроконтролера або їх частини. У режимі супервізора дозволяється виконання будь-яких команд, реалізованих процесором, і доступ до всіх регістрах. У режимі користувача забороняється виконання ряду команд і доступ до деяких регістрів, щоб обмежити можливості таких змін стану системи, які можуть перешкодити виконанню інших програм або порушити встановлений супервізором режим роботи процесора. Режим функціонування визначається значенням біта S в регістрі стану процесора SR.

МП МС68300 має 32-бітову внутрішню структуру і тому може виконувати арифметичні та логічні операції над 32-розрядними числами.

Технічні засоби МП 68300, використовувані для програмування, показані на рис. Регістри загального призначення об'єднані в два набори - регістри даних (D0-D7) і адресні регістри (A0-A7).

Регістри даних:

31 16 15 8 7 0





D 0





D 1





D 2





D 3





D 4





D 5





D 6





D 7


Регістри адреси:

31 16 15 8 7 0





A 0





A1





A2





A3





A4





A5





A6


Два покажчика стека:

31 0

Покажчик стека користувача

USP

Покажчик стека супервізора

SSP


Програмний лічильник:

31 0


PC


Регістр стану:

15 8 7 0


CCR

SR


Регістри даних Dn

У МП МС68300 програмно доступні вісім регістрів даних, позначених D0-D7. Кожен з них може бути використаний як джерело операнда, приймач операнда або як сам операнд. Регістром даних можна оперувати як байтом (8 біт), словом (16 біт) або довгим словом (32 біта). При бітових операціях використовуються лише молодші 8 біт, а при операціях зі словами-молодші 16 біт. Старші біти в цих операціях не беруть участь.

Регістри адреси Аn

Регістри адреси головним чином використовуються для отримання адреси операнда виконуваної команди. Велика частина операцій маніпулювання даними не може виконуватися за допомогою адресних регістрів. У адресних регістрах операції з байтами не дозволені.

Як показано на малюнку в набір регістрів входять дев'ять регістрів адреси, два з яких використовуються як покажчики стека: покажчик стека супервізора (SSP-Supervisor Stack Pointer) і користувальницький покажчик стека (USP-User Stack Pointer). Природно, що в кожний момент часу процесор має доступ тільки до одного з регістрів стека в залежності від режиму, в якому знаходиться процесор. Таким чином адресний регістр А7 фізично представляє собою два незалежних регістру. У програмах на асемблері він може вказуватися як A7 і як SP. Процесор автоматично формує покажчик стека при виклику підпрограм і повернення з них, а також при обробці переривань.

Програмний лічильник РС (Program Counter)

Як і будь-який інший МП, МС68300 має в своєму наборі регістрів програмний лічильник РС.

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

Незважаючи на те, що лічильник команд і адресні регістри MC68300 32-розрядні, при зверненнях до пам'яті на зовнішню адресну шину передаються тільки 24 молодших біта адреси. З цієї причини забезпечується доступ лише до 2 24 (16M) байт пам'яті. Модифікації процесора МС68020, МС68030 і 68040 мають 32-розрядну адресну шину і здатні адресувати 4Г байт.

15 14 13 11 Грудня 10 серпня 7 Травень 4 3 2 1 0
T1-0 S 0 0 I2-0 0 0 0 X N Z V C











CCR

Регістр стану SR містить два байти: системний байт і байт користувача. Повністю регістр SR доступний тільки в режимі супервізора. У режимі користувача доступні лише молодші розряди (байт користувача), які утворюють регістр умов CCR. Окремі біти регістра CCR мають таке призначення:
С - ознака перенесення, приймає значення C = 1 при виникненні перенесення з старшого розряду оброблюваних операндів;
V - ознака переповнення, приймає значення V = 1 у разі переповнення розрядної сітки при обробці операндів зі знаком;
Z - ознака нуля, приймає значення Z = 1 при отриманні нульового результату операції;
N - ознака знака, приймає значення старшого (знакового) розряду результату операції: N = 0 - позитивне число, N = 1-негативне;
X - ознака розширення, в більшості випадків копіює ознака С, але при виконанні деяких операцій ці ознаки встановлюються по-різному.
Біти системного байти регістра стану SR, що визначають режими функціонування процесора, мають таке призначення:
S-ознака супервізора, при S = ​​0 процесор працює в режимі користувача, при S = ​​1 - у режимі супервізора;
T1-0 - поле режиму трасування (покроковий режим): при T1 = 1 процесор зупиняється після кожної команди, при T0 = 1 - тільки після команд переходів і розгалужень, змінюють хід програми;
I2-0 - поле маски переривань, визначає мінімальний рівень пріоритету для обслуговування запитів переривання. Решта біти регістра SR не використовуються або резервовані для наступних моделей процесорів.

При включенні мікроконтролера відбувається автоматична установка початкового стану регістрів. У регістрі SR встановлюється значення біта S = 1, і процесор починає працювати в режимі супервізора. З пам'яті завантажуються початкові значення вмісту програмного лічильника PC і покажчика стека. Якщо в процесі подальшої роботи буде потрібно перехід процесора в режим користувача, то за допомогою команди MOVE to SR в регістр SR завантажується новий вміст, в якому біт S = 0. Зворотній переклад в режим супервізора проводиться при обслуговуванні запитів переривання або виникненні виняткових ситуацій, а також у процесі установки процесора в початковий стан (повторний запуск) при надходженні зовнішнього сигналу скидання або команди RESET.

Регістри VBR, SFC, DFC доступні тільки в режимі супервізора. У 32-розрядний регістр VBR заноситься базова адреса таблиці векторів винятків. Завантаження цього регістра проводиться командою MOVEC. При обслуговуванні винятків сформоване процесором значення Av = 4Ne є відносним адресою (зміщенням), що визначає положення обраного вектора в таблиці, яка може бути розміщена в будь-якому місці адресного простору. У 3-розрядні регістри SFC, DFC за допомогою команди MOVEC заноситься код адресного простору, який надходить на висновки FC2-0 мікроконтролера при виконанні команди MOVES. Таким чином забезпечується розширення адресного простору за допомогою організації віртуальної пам'яті

Формати даних

Процесор виконує обробку бітів, байтів, 16-розрядних слів, 32-розрядних довгих слів і двійково-десяткових чисел (1 байт = 2 десяткових розряду). Оброблювані дані - операнди можуть розташовуватися в регістрах (даних або адреси) або оперативної пам'яті. Для вибірки слова (байти B1-0) або довгого слова (байти B3-0) команда задає адресу старшого байта N, парний або кратний чотирьом. При цьому слова і довгі слова розміщуються таким чином, що молодші байти (розряди D7-0 даних) розташовуються в комірках пам'яті з великими адресами: N +1 або N = 3 (рис.3.3). Таке розміщення байтів в пам'яті від старшого до молодшого відповідає природному порядку їх написання зліва - направо. Цей порядок адресації байтів називається в зарубіжній літературі "big-endian". Він відрізняється від порядку "little-endian", прийнятого компанією INTEL і рядом інших виробників, коли розміщення слова починається з молодшого байта, адреса якого служить адресою слова.

МП МС86300 має можливість доступу в пам'яті до байту (8 біт), слова (16 біт) і довгому речі (32 біта). На відміну від МП фірми Intel (8086, 80286, 80386, 80486) в МП 68300 прийняті наступні угоди:












· слова (довгі слова) можуть розміщуватися тільки по парних адресами;

· Старші байти слова (подвійного слова) розташовуються в комірках з меншими адресами;

· Адресою слова (подвійного слова) вважається його старший байт.


Таким чином, відповідно до концепції, прийнятої фірмою Моторола, слово розміщується в пам'яті в двох сусідніх осередках і починається зі старшого байта. Це означає, що при читанні слова, розміщеного за адресою Х МС68300 зчитує два сусідніх байти, причому байт за адресою Х інтерпретується як старший, а байт за адресою Х +1 як молодший. Відповідно, довге слово розміщується у чотирьох суміжних комірках пам'яті, причому старший байт довгого слова знаходиться за меншим адресою.

Способи адресації

Процесор CPU32 реалізує наступні способи адресації операндів:

  • регістрова (операнд у регістрі даних або адреси),

  • побічно-реєстрова (операнд в комірці пам'яті, що адресується вмістом регістра адреси),

  • побічно-реєстрова з інкрементом поста (операнд в комірці пам'яті, що адресується вмістом регістра адреси, яке автоматично збільшується після вибірки операнда для адресації наступної комірки),

  • побічно-реєстрова з предекрементом (операнд в комірці пам'яті, що адресується вмістом регістра адреси, яке автоматично зменшується перед вибіркою операнда для адресації попередньої комірки),

  • побічно-реєстрова зі зміщенням (операнд в комірці пам'яті, адреса якої є сумою вмісту регістра адреси і 16-розрядного зміщення d16, заданого в команді),

  • побічно-реєстрова з індексацією (операнд в комірці пам'яті, адреса якої є сумою вмісту регістра адреси, індексного регістра і даного в команді 8-розрядного зміщення d8),

  • пряма (операнд в комірці пам'яті, адреса якої задається числом Abs, зазначеним у команді),

  • відносна (операнд в комірці пам'яті, адреса якої є сумою поточного вмісту програмного лічильника PC і даного в команді 16-розрядного зміщення d16 або базового зміщення bd),

  • відносна з індексацією (операнд в комірці пам'яті, адреса якої є сумою вмісту програмного лічильника PC, індексного регістра і даного в команді 16-розрядного зміщення d16 або 32-розрядного базового зміщення bd),

  • безпосередня (значення операнда Im дано в команді).

Формати команд

Команди процесора МС68300 можуть містити від одного до п'яти слів. Будь-яка команда завжди розташована по парним адресою. Формат команди в загальному вигляді показаний на малюнку 1:


Командне слово

(Перше слово, яке визначає операцію і спосіб адресації)

Безпосередній операнд

(Одне або два слова)

Ефективний адресу джерела

(Одне або два слова)

Зсув

(Одне або два слова)

Малюнок 1.

Система команд CPU 32

Процесор CPU32 виконує набір з 139 команд, які реалізують такі групи операцій:

Таблиця1 - Набір команд процесора CPU32

Синтаксис асемблера

Розрядність

Операція

Адресація

ADD Dn,

B, W, L

+ Dn ->

1, (3-9,13)

ADD , Dn

B, W, L

Dn + - Dn

(1-14), 1

ADDA , An

W, L

+ An -> An

(1-14), 2

ADDI # Im,

B, W, L

+ Im ->

12, (1,3-9,13)

ADDQ # Im,

B, W, L

+ Im ->

12, (1-9,13)
ADDX Dy, Dx B, W, L Dx + Dy + X -> Dx 1,1
ADDX - (Ay), - (Ax) B, W, L

+ + X ->

5,5

SUB Dn,

B, W, L

- Dn ->

1, (3-9,13)

SUB , Dn

B, W, L

Dn + ->

(1-14), 1

SUBA , An

W, L

An- -> An

(1-14), 2

SUBI # Im,

B, W, L

- Im ->

12, (1,3-9,13)

SUBQ # Im,

B, W, L

- Im ->

12, (1-9,13)
SUBX Dy, Dx B, W, L

Dx - Dy - X ->

1,1
SUBX - (Ay), - (Ax) B, W, L

- - X ->

5,5

NEG

B, W, L

O - ->

(1,3-9,13)

NEGX

B, W, L

O - - X ->

(1,3-9,13)
ABCD Dy, Dx W Dx + Dy + X -> Dx 1,1
ABCD - (Ay), - (Ax) W

+ + X ->

5,5
SBCD Dy, Dx W Dx-Dy - X -> Dx 1,1
SBCD - (Ay), - (Ax) W

- - X ->

5,5

NBCD

W

O - - X ->

(1,3-9,13)

MULS , Dn

W, L

Dn * -> Dn

(1,3-14), 1

MULS.L , Dh-Dl

L

Dn * -> Dn

(1,3-14), 1

MULU , Dn

W, L

Dn * -> Dn

(1,3-14), 1

MULU.L , Dh-Dl

L

Dl * -> Dh: Dl

(1,3-14), 1

DIVS , Dn

W, L

Dn / -> Dn

(1,3-14), 1

DIVS.L , Dr: Dq

L

Dr: Dq / -> Dr: Dq

(1,3-14), 1

DIVSL.L , Dr: Dq

L

Dq / -> Dr: Dq

(1,3-14), 1

DIVU , Dn

W

Dn / -> Dn

(1,3-14), 1

DIVU.L , Dr: Dq

L

Dr: Dq / -> Dr: Dq

(1,3-14), 1

DIVUL.L , Dr: Dq

L

Dq / -> Dr: Dq

(1,3-14), 1

CLR

B, W, L

0 ->

(1,3-9,13)

Таблиця2 - Команди логічних операцій

Синтаксис асемблера

Розрядність

Операції

Адресація

AND , Dn

B, W, L

Dn ^ -> Dn

(1, 3 - 14), 1

AND Dn,

B, W, L

^ Dn ->

1, (1,3 - 9,13)

ANDI # Im,

B, W, L

^ Im ->

12, (1, 3 - 9,13)

ANDI # Im, CCR W CCR ^ Im -> CCR 12, -
ANDI # Im, SR W SR ^ Im -> SR 12, -

OR , Dn

B, W, L

Dn -> Dn

(1, 3 - 14), 1

OR Dn,

B, W, L

Dn ->

1, (1,3 - 9,13)

ORI # Im,

B, W, L

Im ->

12, (1, 3 - 9,13)
ORI # Im, CCR W CCR Im -> CCR 12, -
ORI # Im, SR W SR Im -> SR 12, -

EOR Dn,

B, W, L

+ Dn ->

1, (1, 3 - 9,13)

EORI # Im,

B, W, L

dst> + Im ->

12, (1, 3 - 9,13)
EORI # Im, CCR W CCR + Im -> CCR 12, -
EORI # Im, SR W

SR + Im -> SR

12, -
NOT B, W, L

->

(1, 3 - 9.13)

Табліца3-Команди зрушень

Синтаксис асемблера

Розрядність

Адресація

ASL Dx, Dv

B, W, L 1, 1
ASL # Ns, Dv B, W, L 12, 1

ASL

W (3 - 9,13)
ASR Dx, Dv B, W, L 1,1
ASR # Ns, Dv B, W, L 12,1

ASR

W (3 - 9,13)
LSL Dx, Dv B, W, L 1,1
LSL # Ns, Dv B, W, L 12,1

LSL

W (3 - 9,13)
LSR Dx, Dv B, W, L 1,1
LSR # Ns, Dv B, W, L 12,1

LSR

W (3 - 9,13)
ROL Dx, Dv B, W, L 1,1
ROL # Ns, Dv B, W, L 12,1

ROL

W (3 - 9,13)
ROR Dx, Dv B, W, L 1,1
ROR # Ns, Dv B, W, L 12,1

ROR

W (3 - 9,13)
ROXL Dx, Dv B, W, L 1,1
ROXL # Ns, Dv B, W, L 12,1

ROXL

W (3 - 9,13)
ROXR Dx, Dv B, W, L 1,1
ROXR # Ns, Dv B, W, L 12,1

ROXR

W (3 - 9,13)

Табліца4 - Команди порівняння та тестування.

Синтаксис асемблера

Розрядність

Операції

Адресація

СMP , Dn

B, W, L

Dn -

(1 - 14), 1

СMP , An

W, L

An -

(1 - 14), 2

CMPI # Im,

B, W, L

- Im

12, (1, 3 - 11,13,14)

CMPM (Av) +, (Ax) +

B, W, L

-

4,4

CMP2 , Rn

B, W, L

(Rn) UB

(3,6-11,13,14), (1,2)

TST

B, W, L

- 0

(1, 3 - 9,13)

TAS

B

- 0, 1 -> b7

(1, 3 - 14)

Таблиця 5 - Команди бітових операцій.

Синтаксис асемблера

Розрядність

Операції

Адресація

BTST Dn,

B, L bn -> Z 1, (1, 3 - 14)

BTST # Nb,

B, L bn -> Z 12, (1, 3 - 14)

BSET Dn,

B, L bn -> Z, 1 -> bn 1, (1, 3 - 9,13,14)

BSET # Nb,

B, L bn -> Z, 1 -> bn 12, (1, 3 - 9,13,14)

BCLR Dn,

B, L

bn -> Z, 0 -> bn

1, (1, 3 - 9,13,14)

BCLR # Nb,

B, L bn -> Z, 0 -> bn 12, (1, 3 - 9,13,14)

BCHG Dn,

B, L bn -> Z, bn -> bn 1, (1, 3 - 9,13,14)

BCHG # Nb,

B, L bn -> Z, bn -> bn 12, (1, 3 - 9,13,14)

Таблиця 6 - Команди управління та установки байтів.

Синтаксис асемблера

Операції

Адресація

JMP

-> PC

(3, 6 - 11,13,14)

JSR

SP - 4 -> SP, PC -> (SP), -> PC

(3, 6 - 11,13,14)
RTS (SP) -> PC, SP + 4 -> SP
RTR (SP) -> CCR, SP + Z -> SP, (SP) -> PC, SP + 4 -> SP

Scc

Якщо (сс) виконується, то 1 ... 1 -> ,
якщо (сс) не виконується, то 0 ... 0 ->

(1, 3 - 9,13,14)

Таблиця 7 - Зміна ознак після виконання команд

Команди

X

N

Z

V

C

Примітка

ABCD, SBCD, NBCD + ? * ? + X = С - десятковий перенесення

ADD, ADDI, ADDQ, SUB, SUBI, SUBQ, NEG

+ + + + + X = С - десятковий перенесення
ADDX, SUBX, NEGX + + * + + X = С - десятковий перенесення
MULS, MULU, DIVS, DIVU - + + + 0

MOVE, MOVEQ, AND, ANDI,
OR, ORI, EOR, EORI, NOT, CLR,
EXT, TAS, TST

- + + 0 0
CMP, CMPI, CMPM - + + + +
CMP2 - ? + ? +
BTST, BSET, BCLR, BCHG - - + - - Z = bn (інверсія)

ASL, ASR

+ + - + + V = 1 при зміні знаку
LSL, LSR + + + 0 +
ROL, ROR - + + 0 +
ROXL, ROXR + + + 0 +
CHK + + + + +

MOVE, ANDI, ORI, EORI to CCR або SR

+ + + + +

У загальному вигляді запис типової двохадресна команди на мові асемблера має наступний вигляд:

COP.x ,

де в якості COP вказується мнемокод відповідної команди, а замість x ставиться символ, який визначає розрядність операндів: B - байт, W - слово, L - довге слово. Якщо після мнемокода відсутній символ розрядності, то за замовчуванням операндом служить слово.
Операнди умовно позначаються як - Джерело, - Приймач, причому в якості приймача вказується операнд, на місці якого поміщається результат операції. При записі конкретних команд як , вказуються символічні адреси операндів на мові асемблера відповідно до використовуваним способом їх адресації. Для одноадресних команд в полі операндів дається один символічний адресу, в безадресних командах адресу операнда в явному вигляді не задається. За безпосередньої адресації замість вказується значення операнда Im, перед яким ставиться префіксний символ #.
Числа Im, d8, d16, bd, Abs.W, Abs.L в полі операндів можуть даватися в різних системах числення, які визначаються префіксним символом:
& - Десяткове число,
% - Двійкове число,
@ - Вісімкове число,
$ - Шестнадцатірічное число.
При відсутності префіксного символу число сприймається як десяткове.
З метою підвищення продуктивності в CPU32 організований триступеневий конвеєр виконуваних команд. Контроль стану конвеєра забезпечується за допомогою вихідних сигналів процесора:
IPIPE # - приймає значення 0 у першому такті виконання кожної команди в конвеєрі;
IFETCH # - приймає значення 0 при завантаженні чергової команди в конвеєр, а також при звільненні конвеєра (відсутності команд).
Дані сигнали можуть використовуватися зовнішнім аналізатором для контролю поточного стану процесора.
Нижче в цьому розділі розглядаються команди, що виконуються процесором CPU32. У таблицях для кожної команди дано її синтаксис на мові асемблера і вказана розрядність операндів: фіксована (вказується числом) або змінна (визначається символом B, W, L, який ставиться після мнемокода команди). Операнди, адреса яких обчислюється відповідно до заданого способом адресації, позначені символами . При виконанні багатьох команд для обчислення EA можна використовувати лише певні способи адресації.

Команди MOVE, MOVEA і MOVEQ

Команда MOVE, в залежності від формату її операнда, може переміщати байт, слово або довге слово з регістра в регістр, між регістром і пам'яттю і між пам'яттю і пам'яттю. Ця команда може також переміщати слово в (з) регістра стану і довге слово між користувальницьким покажчиком стека (USP) і регістром адреси. Коли USP визначений як операнд, або регістр стану (SR) - як приймач операнда, команда стає привілейованої і, отже, не може бути виконана в режимі користувача.

Команда MOVEA (move address) призначена для ініціалізації адресного регістра. Тільки слово і довге слово, як операнди, можливо переміщати безпосередньо в адресний регістр. Для операції зі словом, операнд-джерело перед приміщенням в регістр адреси переводиться в 32-х розрядну сітку з урахуванням знака.

Команда MOVEQ (move quick) - це коротка форма команди переміщення безпосереднього операнда в регістр даних. Безпосередній операнд обмежений діапазоном від -128 до 127. Під розмірністю операції мається на увазі довге слово. Отже, 8-бітний безпосередній операнд повинен бути перетворений в 32-бітовий знаковий перед переміщенням його в приймач, яким є регістр даних. Деякі асемблери можуть розрізняти три форми: MOVE data, MOVEA і MOVEQ по операнда, тому що кожна форма визначається своїм єдиним типом операнда. Для таких асемблерів деякі мнемоніки команди MOVE можуть бути використані також успішно для MOVEA і MOVEQ, тому що відповідні коди операції ассембліруются згідно операнд.

Для ілюстрації роботи команди MOVE, привласнимо D1 = 56789ABC, A1 = 01020304 і CCR = 0010001 встановимо перед виконанням команди. Після того, як показані нижче команди будуть виконані, ми отримаємо наступні результати:

MOVE # 0, CCR На регістр або пам'ять немає впливу,

N = 0, Z = 0, V = 0, C = 0, X = 0

MOVE.W A1, D1 D1 = 56780304,

N = 0, Z = 0, V = 0, C = 0, X = 1

MOVE D1, A1 A1 = FFFF9ABC,

N = 0, Z = 0, V = 0, C = 1, X = 1

MOVE # -10, D1 D1 = FFFFFFF6,

N = 1, Z = 0, V = 0, C = 0, X = 1

Команди MOVEM і MOVEP

Команда MOVEM (move multiple register) переносить слово або довге слово між списком регістрів і послідовно йдуть ділянками пам'яті. У випадку, коли слово переміщають в регістр, кожне слово пам'яті повинно бути перетворено в 32-х розрядну сітку з урахуванням знаку перед завантаженням у відповідний реєстр. Кожен регістр, що бере участь у переміщенні, може бути зазначений у списку і відділений символом "/", можливо також вказівка ​​в списку початкового і кінцевого регістра, розділених символом "-". У пам'яті виділені регістри завжди розташовуються так, що D0 переписується по молодшому адресою, D1 в наступний, ... , Потім з A0 по A7, причому A7 записується в самий верхній адресу пам'яті. При переміщенні регістрів на згадку адресу операнда пам'яті може визначатися в залежності від керуючого способу адресації або режимом з предекрементом. Для зворотного переміщення ефективний адреса може бути визначений залежно від керуючого способу адресації або режимом з інкрементом поста.

Типове застосування команди MOVEM - це запис і відновлення регістрів в стек при зверненні до підпрограм. Перед викликом підпрограми всі регістри можуть бути записані в стек системи за допомогою виконання команди

MOVEM.L D0-D7/A0-A6, - (A7)

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

MOVEM.L (A7) +, D0-D7/A0-A6

Зауважте, що хоча команда MOVEM.L (A7), D0-D7/A0-A6 буде також відновлювати вміст записаних регістрів, але покажчик стека A7 при цьому не буде оновлено з присвоєнням значення, яке було спочатку в вершині стека.

Команда MOVEP (move peripherial data) призначена для полегшення програмного введення / виводу. Безліч інтерфейсів вводу / виводу - 8-бітові пристрою. Для простоти зв'язку між 16-бітної адресною шиною і 8-бітним пристроєм вводу / виводу, пристрій з'єднується з кожним молодшим або старшим байтом шини даних. У випадку з'єднання з молодшим байтом, всі внутрішні регістри пристрою доступні через послідовність непарних адрес. В іншій конфігурації всі внутрішні регістри доступні через послідовність парних адрес. Команда MOVEP може здійснювати введення / виведення даних з (в) двох (для операції зі словом) або чотирьох (для операції з довгим словом) послідовно розташованих регістрів пристрої введення / виводу. Тільки непрямий регістровий спосіб адресації зі зміщенням допускається для визначення порту введення / виводу. На Рис. 14 показані два приклади роботи команди MOVEP.

Команди EXG і SWAP

Команда EXG (exchange) здійснює обмін вмісту двох регістрів, в той час як команда SWAP обмінює молодше слово в регістрі даних зі старшим словом. Мається на увазі, що розмірність операнда для EXG - довге слово, для SWAP - слово.

Команди LEA і PEA

Команда LEA (load effective address) переміщує адресу операнда-джерела (а не його вміст) в адресний регістр - приймач. Отже, команда

MOVEA.L # OPER, A1

еквівалентна команді

LEA OPER, A1

















Команда PEA (push effective address) записує адресу операнда-джерела в стек системи. Ця команда звичайно використовується для передачі адрес параметра в підпрограму через стек. Операндами-джерелами для обох команд LEA і PEA повинні бути операнди пам'яті.

В якості деякої ілюстрації до описаних командам, припустимо, що ми хочемо записати нескладну послідовність команд, яка буде переміщати 4 довгих слова з масиву ABC в початок масиву XYZ. Проста послідовність, що виконує це, наступна:

MOVE.L ABC, XYZ

MOVE.L ABC +4, XYZ +4

MOVE.L ABC +8, XYZ +8

MOVE.L ABC +12, XYZ +12


Ті ж дії можуть бути виконані двома командами:

MOVEM ABC, D0-D3

MOVEM D0-D3, XYZ


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

MOVEA.L # ABC, A1

MOVEA.L # XYZ, A2

MOVE.L (A1) +, (A2) +

MOVE.L (A1) +, (A2) +

MOVE.L (A1) +, (A2) +

MOVE.L (A1) +, (A2) +


У цьому способі, що використовує постінкрементний спосіб адресації, одна й та ж команда MOVE.L повторюється для переміщення наступних елементів. Отже, ця послідовність команд може бути легше перетворена в ітераційний цикл для переміщення великого числа елементів між двома масивами.

Результатом проектування є програмна модель, найбільш точно реалізує всі перераховані вище особливості мікропроцесора MC 68300. Особливу увагу приділено способам адресації, зокрема програмна модель реалізує 14 способів адресації передбачених у мікропроцесорі, можливості введення даних у різних системах числення, зокрема в системах по підставі 2, 10, 16. Загальну структуру програми для наочності можна представити на малюнку 2:



Введення

даних


Рисунок 2 - Загальна структура програми.

Модуль інтерпретатора реалізує наступні функції:

  • перевірку на наявність помилок в синтаксисі команд, введених користувачем,

  • приведення всіх операндів до системи числення з основою 16,

  • можливість перегляду ефективного адреси операндів (ЕА);

  • приведення всіх команд до форми, зрозумілою обробнику.

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

Після обробки команд, у користувача є можливість перегляду результату їх виконання, тобто активним стає модуль інтерфейсу.


5. Інтерфейс, органи управління

Після запуску програми користувач отримує доступ до графічного інтерфейсу, що дозволяє здійснювати введення, коригування і виведення даних в діалоговому режимі (рис.1).

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


Рис. 3


Основний екран програми складається з двох вікон: вікно для введення тексту програми (діалогове вікно) і вікно отладчика, в якому відбивається адресу команди в пам'яті, положення покажчика стека, мнемоніка команди і її машинний код. Програмна модель володіє можливістю перегляду і коригування проміжних результатів виконання мікропроцесорних програм. Для цієї мети в неї включені можливості перегляду вмісту регістрів мікропроцесора. Здійснюється це шляхом вибору відповідного підменю у меню, що випадає PopUp (Перегляд / Регістри). Мікропроцесор має 17 32-розрядних регістрів (вісім регістрів даних, сім адресних регістрів і два покажчика стека). Крім того, в ньому є 32-розрядний счетік команд, в якому використовуються лише молодші 24 розряду. Регістр стану мікропроцесора має 16 розрядів. Всі ці регістри відображені у відповідному вікні (рис. 2). Закрити вікна перегляду регістрів можна клацнувши на системну іконку закриття вікна або ж вибравши в меню пункт "Вікно", "Закрити всі"

Перемикання між режимами здійснюється шляхом вибору відповідного режиму в меню "Режим". При перемиканні між режимами всі дані, введені користувачем повинні бути збережені, про що з'явиться відповідна підказка.


Рис. 4


Програмна модель надає користувачеві можливість роботи з файлами. Для цієї мети в меню "Файл" необхідно вибрати потрібну дію (Створення нового програмного листа, відкриття вже існуючого, збереження редагованого, його закриття). Тут також існує можливість виходу з програми, все надалі необхідні дані повинні бути попередньо збережені.

У меню "Пуск" відображені команди, керівники виконанням і налагодженням мікропроцесорних програм. Команда "Виконати" виконує програму з діалогового вікна. Команда "Зупинка" перериває виконання програми. Команда "Асемблювання" переводить мнемоніку команд у асемблерний код, який також відображається у відповідному вікні. Команда "дизасемблювання" навпаки переводить машинний код в мнемоніку, зрозумілу користувачеві. Команда "Трасування" дозволяє виконувати програму у покроковому режимі, що може бути корисно для з'ясування тонкощів алгоритму виконання програми, а також може використовуватися для усунення помилок в програмному коді.

У меню також є пункт "Допомога", де користувач зможе знайти всю необхідну йому інформацію по роботі програмної моделі, влаштуванню мікропроцесора і його системі команд.

Для полегшення роботи, найбільш часто виконувані операції винесені на панель інструментів.


6. Застосування програмної моделі.

Програмна модель дає широкі і зручні можливості для набору і налагодження навчальних програм (наприклад, може бути можливий одночасний перегляд всіх регістрів, пам'яті, введення команд у мнемонічних позначеннях, ассемблирование команд і т. д.).

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

Прикладом програми, запропонованої для навчання, може бути програма обчислення максимального елементу масиву значень, розміром в слово (WORD).

move # 10, D0; задає розмірність масиву 10 -> DO

M1: move (a1), d1; завантажує вміст комірки пам'яті за адр. А1-> D1

movea d3, A2; завантажує вміст регістра D3-> A2

move d1, d3; D3-> D1

sub A2, D1; D1-A2-> D1

SPL Met; якщо позитивний результат, то перехід на Met:

move a2, d3; A2-D3

Met: adda # 2, a1; A1 +2-> A1

sub # 1, D0; D0-1-> D0

sne M1; якщо ненульовий результат, то перехід на M1

move d3, d0; D3-> D0.

За допомогою наочного інтерфейсу користувач може переглянути покомандно виконання програми (так званий режим трасування), вміст регістрів і прапорів і їх зміна при виконанні команд. Існує також можливість швидкого виконання команди, що забезпечує можливість майже миттєвого отримання результатів обробки.

7. Опис інтерпретатора

При розробці програмної моделі етап лексичної обробки тексту вихідної програми виділяється в окремий етап роботи компілятора, як з методичними цілями, так і з метою скорочення загального часу компіляції програми. Останнє досягається за рахунок того, що вихідна програма, представлена ​​на вході компілятора у вигляді безперервної послідовності символів, на етапі лексичної обробки перетворюється до деякого стандартного вигляду, що полегшує подальший аналіз. При цьому використовуються спеціалізовані алгоритми перетворення, теорія і практика побудови яких в літературі опрацьована досить глибоко.

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

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

Дескриптор - це пара виду: (<тип лексеми>, <покажчик>),

де <тип лексеми> - це, як правило, числовий код класу лексеми, який означає, що лексема належить одному з кінцевої множини класів слів, виділених у мові програмування;

<Покажчик> - це може бути або початкова адреса області основної пам'яті, в якій зберігається адреса цієї лексеми, або число, адреса елемент таблиці, в якій зберігається значення цієї лексеми.

Кількість класів лексем (тобто різних видів слів) в мовах програмування може бути різним. Найбільш поширеними класами є:

- Ідентифікатори;

- Службові (ключові) слова;

- Роздільники;

- Константи.

Всі вони присутні в даній програмної моделі.

Можуть вводитися і інші класи. Це обумовлено в першу чергу тією роллю, яку відіграють різні види слів при написанні вихідної програми і, відповідно, при переведенні її в машинну програму. При цьому найбільш привабливим є розбиття всього безлічі слів, які допускаються в мові програмування, на такі класи, які б не перетиналися між собою. У цьому випадку лексичний аналіз можна виконати більш ефективно. У загальному випадку всі виділяються класи є або кінцевими (ключові слова, роздільники й ін) - класи фіксованих для даної мови програмування слів, або нескінченними або дуже великими (ідентифікатори, константи, мітки) - класи змінних для даної мови програмування слів.

З цих позицій коди образів лексем (дескрипторів) з кінцевих класів завжди одні й ті ж у різних програмах для даного компілятора. Коди ж образів лексем з нескінченних класів різні для різних програм і формуються щоразу на етапі лексичного аналізу.

У ході лексичного аналізу значення лексем з нескінченних класів поміщаються в таблиці відповідних класів. Кінцівка таблиць пояснює обмеження, що існують в мовах програмування на довжини (і відповідно число) використовуються у програмі ідентифікаторів і констант. Необхідно відзначити, що числові константи перед приміщенням їх у таблицю можуть переводитися з зовнішнього символьного у внутрішнє машинне подання. Вміст таблиць, особливо таблиці ідентифікаторів, надалі поповнюється на етапі семантичного аналізу початкової програми і використовується на етапі генерації об'єктної програми.

Спочатку в тексті вихідної програми лексичний аналізатор виділяє послідовність символів, яка за його припущенням повинна бути словом у програмі, тобто лексемою. Може виділятися не вся послідовність, а тільки один символ, який вважається початком лексеми. Це найбільш відповідальна частина роботи лексичного аналізатора. Користувачеві необхідно враховувати, що мітка (якщо вона присутня) починається спочатку рядка (прогалини - якщо вони є - до уваги не приймаються), та від операцій відокремлюється символом ":"

Приклад:

М: moveq # 123, D1;

add D1, D2;

причому кількість прогалин ":" до, після ":", між операндами, між командою і операндами (і їх наявність) може бути довільним. Обов'язковою є "," між приймачем і джерелом. В кінці мнемоніки команди в обов'язковому порядку повинна стояти ";", яка відокремлює мнемокод від коментарів користувача, які інтерпретатором ігноруються. В іншому випадку відбудеться вироблення виняткової ситуації, про що з'явиться на екран відповідне повідомлення.

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

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

- Метод лінійного списку;

- Метод упорядкованого списку;

- Метод розстановки та інші.

Для ідентифікації лексем з нескінченних (дуже великих) класів використовуються спеціальні методи складання лексем з одночасною перевіркою правильності написання лексеми. При побудові цих алгоритмів широко застосовується формальний математичний апарат - теорія регулярних мов, граматик і кінцевих розпізнавачів. У даному випадку - час пошуку не актуально, так як воно і так не високо з-за не дуже великої кількості команд мікропроцесора.

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

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

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

Вихідний потік з лексичного аналізатора надалі надходить на вхід синтаксичного аналізатора. Є дві можливості їх зв'язку:

- Роздільна зв'язок, при якій вихід лексичного аналізатора формується повністю і потім передається синтаксичному аналізатору;

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

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


Висновок


Метою даної роботи було вивчення організації 32-розрядного мікропроцесора фірми Motorola. Дана мета була досягнута за допомогою написання програмної моделі даного мікропроцесора.

У ході роботи велику увагу приділено функціональним особливостям об'єкта розробки, способам організації, системі команд, поданням вихідних даних у різних системах числення. Це програмне виріб може бути використане при навчанні студентів. Наочний інтерфейс, простота в роботі, широкі можливості дозволяють краще зрозуміти структуру мікропроцесора. Об'єктно - орієнтовані методи написання програмної моделі дозволяють надалі удосконалити її структуру, перетворивши тим самим програмну модель мікропроцесора в програмну модель мікро ЕОМ.


Список використаних джерел


1. Internet. Сайти, присвячені мікроелектроніці, зокрема www.Gaw.ru, розділ присвячений мікропроцесорах.

2. Жмакіна А.П. Курс лекцій по мікропроцесорах.

3. Фаронов В.В. Delphi 5. Навчальний курс, М., "Knowledge", 2001 рік.

4 Юров. В. Assembler., Санкт-Петербург: Питер "2000 р.

5. Фаронов В. В. Delphi 5. Навчальний курс.-М.: «Нолидж», 2001. -608 С., Іл.

6. Архангельський А. Я. Програмування в Delphi 4 - М.: ЗАТ "Видавництво БИНОМ", 1999 р. - 768 с., Іл.

7. Дантеман Джефф, Мішел Джим, Тейлор Дон. Програмування в середовищі Delphi: Пер з англ. / Дантеманн Джефф, Тейлор Джон. - К.: НІПФ "ДіаСофтЛтд.", 1995. - 608 с.

8. Федоров А. Г. Створення Windows - додатків в середовищі Delphi: - М.: ТОВ фірма "КомпьютерПресс", 1995. - 287 с., З іл.

9. Проектування апаратних і програмних засобів переробки інформації. / Методичні вказівки для виконання роботи бакалавра. - КДТУ. Курськ.

10. Лішнер Р. Секрети Delphi 2: Пер. з англ. - Київ НІФП "ДіаСофтЛтд", 1996. - 800 с.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
106.3кб. | скачати


Схожі роботи:
Програмна модель процесорів сімейства X86
Програмна модель пошуку глобального мінімуму нелінійних яружних функцій двох змінних
Паутинообразная модель фірми
Історія компанії Motorola
Бакалаврська методика викладання історії Стародавнього світу в школі
Проектування і програмна реалізація інтернет-магазину
Розробка та програмна реалізація інформаційної системи Кадри
Рівновага на товарному ринку Проста кейнсіанська модель модель витрати доходи
Рівновага на товарному ринку Проста кейнсіанська модель модель витрати доходи 2
© Усі права захищені
написати до нас