Створення програми мовою Асемблер для мікропроцесора Intel 8086
Історія появи та регістрова структура мікропроцесора Intel 8086, його функціональна спеціалізація, особливості системи команд, комп'ютерна архітектура і основні принципи та етапи розробки програмного забезпечення з допомогою мови програмування Асемблер.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 27.02.2013 |
Размер файла | 134,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Вступ
Тема даної розрахунково-графічної роботи "Створення програми мовою Асемблер для мікропроцесора Intel 8086". Тематика може здатися не актуальною, так як цей процесор розроблений більше тридцяти років тому, але архітектурні рішення, прийняті при його створенні все ще широко використовуються в сучасних мікропроцесорах. Поява даного процесора дозволило зробити прорив в комп'ютерній індустрії. Швидкість його роботи в десять разів перевищувала продуктивність попередньої моделі.
Висока продуктивність у порівнянні з іншими, існувавшими на той час процесорами, досягалася за рахунок збільшення об'єму регістрів з 8 до 16 біт. Крім того розмір інформаційних шин був збільшений до 16 розрядів, що дозволило збільшити швидкість передачі інформації в мікропроцесор і з нього в два рази. Розмір його адресної шини також був істотно розширений - до 20 біт, за рахунок чого i8086 міг контролювати 1Мб оперативної пам'яті.
Як прямий нащадок 8080, процесор 8086 успадкував більшу частину безлічі його мікрокоманд. Регістри нового процесора були розроблені таким чином, що вони могли обробляти як 16-ти бітні значення так і 8-ми бітні - також як це робив 8080.
Пам'ять i8086 була доопрацьована спеціальним чином. Весь мегабайт оперативної пам'яті не представлявся єдиним полем, а був розділений на 16 сегментів величиною по 64Кб. Таким чином, пам'ять МП можна було представити як об `єднання разом пам'яті кількох 8080. Процесор i8086 працював з кожним сегментом окремо, не дозволяючи великим інформаційним структурам переходити через границі сегментів.
Технологічні нововведення, реалізовані в i8086 значно випередили свій час.
1. Постановка задачі
Реалізувати програму на мові асемблера для МП i8086, згідно із завданням, представленим далі. Програма повинна робити ряд арифметичних і логічних обчислень, і виводити результати на екран.
Завдання складається з трьох підзадач: розрахунок арифметико-логічних виразів, реалізація циклічної структури, і написання процедури виведення результатів роботи на екран.
Завдання 1:
- визначити дані:
- a (1) > 28; a (2) > 18; a (3) > 5; c1 > 35; c2 > 28;
- занести в регістри процесора такі дані:
- AX > (a (1)-a (2)) * a (3); BX > a (2)-a (3); CX > c1 + c2; DX > not (not (not (a (1) OR a (2)), a (3))).
Завдання 2. Організувати цикл, послідовно зменшуючи число у регістрі CX на 8. У циклі зменшувати число, яке знаходиться в регістрі BX, на величину регістра CX тоді, коли в регістрі BX міститься парне число, і збільшувати це ж число на величину в регістрі AX, якщо в регістрі BX міститься непарне число, доки значення числа в регістрі CX не стане менше 3.
Завдання 3. Реалізувати процедуру виведення на екран результатів завдання № 1 і № 2.
2. Програмна модель мікропроцесора i8086
2.1 Загальне представлення
Регістрова структура процесора включає в себе 14 16-розрядних програмно-доступних регістрів і може бути представлена в наступному вигляді (рис.2.1):
Рисунок 1. Регістрова структура процесора
Програмно-доступні регістри поділяються на наступні:
- регістри загального призначення (GPR - General Purpose Registers), група включає вісім регістрів;
- сегментні регістри (SR - Segment Registers), група включає чотири регістри;
- регістр прапорів (Flags);
- вказівник команд (Instruction Pointer).
2.2 Регістри загального призначення
У відношенні функціонального призначення регістрів, що утворюють внутрішню регістрову пам'ять процесорів, існують два протилежні підходи, що реалізуються в архітектурі ЕОМ:
1. повна спеціалізація регістрів, тобто кожен регістр використовується тільки за одним конкретним призначенням;
2. повна універсалізація регістрів, тобто кожен регістр може використовуватися за будь-яким призначенням.
У процесорах фірми Intel використовується проміжний підхід, що поєднує в собі часткову спеціалізацію і часткову універсалізацію регістрів. Це означає, що за замовчуванням будь-кий регістр використовується як спеціалізований для певної мети, і в той же час його можна використовувати і для інших цілей як універсальний регістр.
Використання будь-якого регістра за його прямим призначенням скорочує довжину об'єктного коду програми, так як використання регістра за призначенням, як правило, передбачає його неявну адресацію (адреса регістра не задається, але мається на увазі).
Функціональна спеціалізація РЗП відбивається в їх найменуваннях:
- АХ - accumulator (регістр-акумулятор) - за замовчуванням використовується для завдання одного з операндів команди і для представлення результату;
- СХ - counter (лічильник) - за замовчуванням використовується, по-перше, як лічильник числа повтореннь циклів в команді "організація циклу" (LOOP); по-друге, для завдання кількості розрядів для команд здвигів (його молодший байт - CL), по-третє, для завдання числа елементів оброблюваних рядків в командах обробки рядків (MOVS, CMPS і т. д.);
- DX - Data (регістр даних) - за замовчуванням використовується як розширення акумулятора з боку старших розрядів у командах множення і ділення;
- ВХ - Base (базовий регістр) - за замовчуванням використовується як базова компонента ефективної адреси операнда, що знаходится у пам'яті (у термінології фірми Intel під ефективним адресою - Effective Address (ЕА) - розуміється адреса операнда, формований програмою).
Для отримання фізичної адреси комірки пам'яті, в якій знаходиться операнд, здійснюється перетворення ЕА на основі найпростішої моделі сегментованої пам'яті (механізмусегментації);
- SP - Stack Pointer (покажчик стека) - за замовчуванням використовується для адресації вершини стека. Вершина стека вказує на адресу останнього елемента, записаного в стек.
Стек являє собою сегмент пам'яті. Стек зростає в область молодших адрес. Це означає, що при записі (включенні в стек), наприклад, по команде PUSH, спочатку здійснює декремент SP на два, а потім запис в пам'ять за новим значенням SP як адреси. При читанні зі стека, наприклад, по команді POP, спочатку проводиться читання слова за адресою з SP, а потім інкремент вмісту SP на два. Робота зі стеком реалізується на рівні слів, але не байтів;
- ВР - Base Pointer (покажчик бази) - за замовчуванням використовується як базова компонента ефективного адреси операнда в пам'яті за аналогією з ВХ.
Відмінність у використанні вмісту регістрів ВХ і ВР як базових компонент ЕА полягає в тому, що при використанні ВХ мається на увазі звернення до сегменту даних, а при використанні ВР - до сегменту стека (але не через його вершину).
Подібний спосіб роботи зі стеком не через його вершину використовується в програмах на ASSEMBLER для звернення до параметрів процедури, переданим через стек;
- SI - Source Index (індекс джерела) - за замовчуванням використовується для завдання індексної компоненти ЕА, а також для адресації елементів строк в командах обробки рядків;
- DI - Distination Index (індекс приймача) - за замовчуванням використовується аналогічно SI для завдання індексної компоненти ЕА, а також для адресації елементів рядка-приймача в командах обробки рядків.
Групу з восьми РОН прийнято ділити на дві частини:
- група HL (High - Low);
- група PI (Pointer - Index).
Групу HL іноді називають регістрами даних, маючи на увазі її переважне використання для операндів і результатів команд.
Регістри групи HL можуть використовуватися в командах в двохбайтному (повному) та байтному (неповному) варіантах.
Окремі байти цих регістрів використовують ту ж назву, що і повний регістр (A, C, D, B) з додаванням приставки L - молодший, Н - старший, для відповідних байтів регістру.
Група PI або група покажчиків-індексів може використовуватися тільки в двохбайтному варіанті.
Для адресації РЗП, як повних, так і не повних, в машинній команді використовуються три двійкових розряди.
Двійкові адреси повних РЗП наведені на рисунку 2.1 зліва, а їх окремих байт - в дужках.
2.3 Сегментні регістри
Сегментні регістри використовуються для апаратної підтримки найпростішої моделі сегментованої пам'яті, прийнятої в процесорі 8086. Їх вміст визначає базові (початкові) адреси відповідних сегментів у фізичній пам'яті.
CS - Code Segment - сегмент коду (машинної програми).
SS - Stack Segment - сегмент стека.
DS - Data Segment - сегмент даних.
ES - Extra Segment - додатковий сегмент.
Використання чотирьох сегментних регістрів припускає, що в будь-який момент часу програма може працювати (мати доступ) з чотирма сегментами пам'яті. З урахуванням того, що довжина кожного сегмента становить 216 байт = 64 Кбайт (16-розрядна адреса) фізичний адресний простір, доступний програмі, становить 256 Кбайт.
Шина адреси процесора Intel 8086 є 20-розрядною, що забезпечує ємність адресного простору 220 байт = 1 Мбайт. При формуванні 20-розрядної фізичної адреси, вміст відповідного сегментного регістра зміщується в бік старших розрядів шляхом зсуву на чотири розряди вліво. Таким чином, вміст сегментних регістрів являє собою не саму фізичну початкову адресу сегменту, а його значення, зменшене на 16 (сегменти вирівняні в пам'яті на границі параграфа).
Вміст одного із сегментних регістрів залучається за замовчуванням кожен раз при звертанні процесора до пам'яті для формування фізичної адреси, який і виставляється на шину адреси. Наприклад, на етапі вибірки команди за замовчуванням залучається регістр CS, при зверненні до стеку - регістр SS. При зверненні за операндом або при записі результату - регістр DS.
2.4 Регістр прапорців
У регістрі прапорців актуальними є тільки дев'ять бітів, шість з яких представляють собою арифметичні прапори (прапори станів) і три - прапори управління. Решта бітів є незадіяними (позначаються Х). Струтура даного регістра представлена таблиці нижче.
Таблиця 1. Структура регістру флагів
xxxx |
OF |
DF |
IF |
TF |
SF |
ZF |
X |
AF |
X |
PF |
X |
CF |
|
15 12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Арифметичні прапорці формуються в основному арифметичними командами, визначаючи результат арифметичних операцій (точніше, вони є ознаками результату). Крім того, на арифметичні прапори впливають логічні команди і команди зсуву. Прапори управління впливають на процес виконання програми.
До арифметичних прапорців відносяться наступні:
- CF - Carry Flag (прапор переносу). У ньому фіксується перенос зі старшого розряду при додаванні і заєм у старший розряд при відніманні. При множенні, значення прапора CF визначає можливість (CF = 0) або неможливість (CF = 1) подання результату (твори) в тому ж форматі, що і співмножники.
За допомогою прапора перенесення фіксується переповнення при додаванні беззнакових чисел;
- PF - Parity Flag - прапор паритету (парності). Він встановлюється за наявності парного числа одиниць в молодшому байті результату, в іншому випадку - скидається. Цей прапор використовується як апаратна підтримка контролю по парності (непарності);
- AF - Аuxiliary Carry Flag (прапор допоміжного переносу). У цьому прапорі фіксується перенесення при додаванні і при відніманні. Значення цього прапора використовується командами десяткової і ASCII корекції додавання і віднімання. Цей прапор можна розглядати як апаратну підтримку операцій над десятковими числами;
- ZF - Zero Flag (прапор нуля). Він встановлюється при нульовому результаті операції, в іншому випадку (ненульовий результат) -- скидається;
- SF - Sign Flag (прапор знаку). У нього копіюється старший (крайній лівий) біт результату, інтерпретується як знак;
- OF - Overflow Flag (прапор переповнення). Він встановлюється в командах додавання і віднімання у разі, якщо результат операції не поміщається у форматі операндів. При цьому як операнди, так і результат інтерпретуються як знакові цілі числа. У апаратну установку цього прапора покладено принцип фіксації переповнення в порівнянні переносів з двох старших розрядів при додаванні або займів у два старших розряди при відніманні. Якщо один із займів має місце, а інший відсутній, то відбувається переповнювання формату (розрядної сітки). У командах множення прапор OF виконує ту ж функцію, що і прапор CF (їх значення збігаються).
До прапорів управління відносяться:
- TF - Trace (Trap) Flag (прапор трасування (пастки)). При установці прапора TF процесор переводиться в так званий налагоджувальний (покомандний, покроковий) режим роботи. У цьому режимі завершення виконання будь-якої команди супроводжується виходом на переривання спеціального типу (стандартний тип 1 - переривання по налагодженню);
- DF - Direction Flag (прапор напрямку). Його значення використовується командами обробки рядків (ланцюжків) і визначає напрямок обробки: від менших адрес до великих (зліва на право) при DF = 0 або від великих адрес до менших (справа на ліво) при DF = 1;
- IF - Interrupt Flag (прапор переривань). За допомогою цього прапора вирішуються (IF = 1) або забороняються (IF = 0) зовнішні переривання, запити яких надходять на спеціальний вхід INTR (Interrupt Requester). Цей вхід зазвичай пов'язаний з мікросхемою PIC (Programmable Interrupt Controller) - програмований контролер переривань.
2.5 Регістр IP
Вмістом регістра IP є так звана просунута адреса команди. Це означає, що в момент виконання якої-небудь команди регістр IP вказує на адресу наступної команди.
В якості адреси команди фігурує адрес її молодшого байта.
У зв'язку з тим, що в базовій моделі використовується найпростіший двоступінчастий конвеєр команд (I ступінь - вибірка команди; II ступінь - інші фази (етапи) виконання команди, до яких відносяться: декодування команди (визначення типу), формування адрес операндів, вибірка операндів, виконання операції в АЛП, запис результату), фактично вміст регістра IP, який входить в блок попередньої вибірки команд, вказує на черговий байт команди, вибраний з пам'яті і поміщається в спеціальний буфер, який називається чергою команд (IQ - Instruction Queue). Не дивлячись на цей факт, для виконуваної програми IP містить адресу наступної команди. Фактично, на апаратному рівні при необхідності використання IP (наприклад, для його збереження як адреси повернення) здійснюється відповідна корекція його вмісту з урахуванням числа байт, обраних в IQ.
Конвеєр команд служить одним з найважливіших засобів збільшення продуктивності комп'ютера. З його допомогою реалізується паралелізм на рівні машинних команд. Це означає, що в будь-який момент часу в процесорі на стадії одночасного виконання знаходиться декілька послідовних машинних команд (по зростанню адрес). Блоки конвеєра можуть функціонувати паралельно в часі незалежно один від одного. При використанні класичного шестиступінчастого конвеєра команд (по числу фаз виконання команди) та умови, що кожна фаза вимагає однаковий час реалізації, повне завантаження конвеєра команд в принципі забезпечує шестиразове збільшення продуктивності в порівнянні з послідовним (безконвейєрним) процесором.
3. Система команд
Система команд процесора i8086 складається з 98 команд (і більше 3800 їх варіацій): 19 команд передачі даних, 38 команд їх обробки, 24 команди переходу і 17 команд управління процесором. Можливо 7 режимів адресації. Мікропроцесор не містив команди для роботи з числами з дійсними числами. Дана можливість реалізовувалася окремою мікросхемою, так званим математичним співпроцесором, який встановлювався на материнській платі. Співпроцесор зовсім не обов'язково повинен бути розроблений Intel (модель i8087), наприклад, деякі виробники мікросхем, такі як Weitek, випускали більш продуктивні співпроцесори, ніж Intel.
Система команд процесора i8086 включає в себе кілька дуже потужних рядкових інструкцій. Якщо інструкція має префікс REP (повтор), то процесор буде виконувати операції з блоками - переміщення блоку даних, порівняння блоків даних, присвоєння певного значення блоку даних певної величини, і т.д., тобто, одна інструкція 8086 з префіксом REP може виконувати 4-5 інструкцій, виконуваних на деяких інших процесорах. Але слід згадати, що подібні прийоми були реалізовані і в інших процесорах - Zilog Z80 мав інструкції переміщення і пошуку блоків, а Motorola 68000 може виконувати операції з блоками, використовуючи всього дві команди.
У мікропроцесорі i8086 була використана примітивна форма конвеєрної обробки. Блок інтерфейсу з шиною подавав потік команд до виконавчого пристрою через 6-байтову чергу команд. Таким чином, вибірка та виконання нових команд могли відбуватися одночасно. Це значно збільшувало пропускну здатність процесора і позбавляло необхідності чекати зчитування команди з пам'яті при зайнятому іншими операціями інтерфейсі мікросхеми (в той час швидкість пам'яті значно випереджала швидкість процесора).
4. Практична частина
4.1 Опис роботи програми
Програма починається з визначення необхідних даних. Змінні taskn використовуються для представлення зручного для читання виводу на екран. Константа rn містить симовли переносу рядка і повернення каретки. Змінні expr і tmp використовуються в якості параметрів процедур. У змінній value відбувається формування ASCII-представлення даних. Програма містить дві процедури: To_ASCII і println. Перша провадить конвертацію двійкових даних в шістнадцяткове представлення, друга реалізує алгоритм виведення даних на екран. Головна програма розділена на ділянки, що відповідають пунктам завдання.
У другій частині програми, де необхідно реалізувати циклічну структуру, згідно із завданням потрібно перевірити парність значення регістра BX, для чого, замість перевірки прапора парності PF, використовується аналіз останнього біта числа. Якщо даний біт встановлений в одиницю, значить число не парне. Мітка EVEN циклу позначає блок коду, що виконує дії в тому випадку, якщо число парне, ODD - не парне. Цикл розділений на три основні частини: CONDITION, BEGIN... END, STEP. У блоці CONDITION відбувається перевірка умови виконання циклу, другий блок являє собою тіло циклу, блок STEP визначає крок зміни керуючої змінної.
Виведення на екран здійснено із застосуванням переривання MS-DOS 21h і функції переривання 9. Ця функція по перериванню виводить блок ASCII-тексту на екран, поки у вихідних даних не зустрінеться символ "$", що позначає в даному випадку кінець рядка.
Лістинг і блок-схема програми представлена в додатках А і Б відповідно.
Висновок
У процесі виконання розрахунково-графічної роботи отримані відомості про програмну модель та систему команд мікропроцесора Intel 8086. Розроблена програма, що містить обчислювальну частину, логічну - реалізація циклу і структурну - процедури конвертації двійкового представлення даних в шістнадцяткове, і виведення на екран результатів. Висновок можливий із застосуванням трьох різних методів: безпосередній запис даних в комірки пам'яті відеоадаптера, з використанням переривань BIOS і переривань ОС MS-DOS. Останній спосіб вважається найпростішим. Даним методом реалізований вивід у створеній програмі. Програма розроблялася в емуляторі Emu8086.
Emu8086 являє собою інтерактивну систему для вивчення мови програмування Асемблер, комп'ютерної архітектури і принципів розробки програмного забезпечення. Програма складається з редактора коду, Асемблера і емулятора мікропроцесора (віртуальний PC). Емулятор управляє програмами подібно реальному мікропроцесору в покроковому режимі. Показує регістри, пам'ять, стек, змінні і прапорці.
Перелік використаних джерел
1. Бойко В.И. и др. Схемотехника электронных систем. Микропроцессоры и микроконтроллеры. - СПб.: БХВ-Петербург, 2004. ;
2. Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT. - М.: Финансы и статистика, 1992;
3. Зубков С.В. Assembler для DOS, Windows и UNIX. - М.: ДМК Пресс, 2000;
4. Кулаков В. Программирование на аппаратном уровне. Специальный справочник. - СПб: Питер, 2001;
5. Мячев А.А., Степанов В.Н. Персональные ЭВМ и микроЭВМ. Основы организации: Справочник / Под ред.А. А. Мячева. - М.: Радио и связь, 1991;
6. Фролов А.В., Фролов Г.В. Операционная система MS DOS. - М.: «Диалог-МИФИ», 1992;
7. Юров В.И. Assembler. - СПб: Питер, 2000.
мікропроцесор іntel регістр комп'ютерний
Додаток А
Лістинг програми
#make_COM#
; COM file is loaded at CS:0100h
ORG 100h
jmp MAIN
a DW 28,18,5
c1 DW 35
c2 DW 28
task1 DB '(28-18)*5=$'
task2 DB '18-5=$'
task3 DB '35+28=$'
task4 DB 'not(not(not(a[1]|a[2]) XOR a[3]))=$'
rn DB 13,10,'$'
expr DB 35 DUP(' ')
value DB 5 dup('$')
clrValue DB '00$$$'
ev DB 'чётное$'
od DB 'нечётное$'
tmpDX DW ?
tmpBX DW ?
tmp DW ?
MAIN:
mov AX, a
sub AX, a+2
mul a+4;AX=32h (50)
mov tmp, AX
cld
mov CX, 11
lea DI, expr
lea SI, task1
rep movsb
call println
mov BX, a+2
sub BX, a+4;BX=Dh (13)
mov tmp, BX
cld
mov CX, 6
lea DI, expr
lea SI, task2
rep movsb
call println
mov CX, c1
add CX, c2;CX=3Fh (63)
mov tmp, CX
cld
mov CX, 7
lea DI, expr
lea SI, task3
rep movsb
call println
mov DX, a
or DX, a+2
not DX
xor DX, a+4
not DX
not DX
mov tmp, DX
cld
mov CX, 35
lea DI, expr
lea SI, task4
rep movsb
call println
mov BX, 507
mov DX, 30
CONDITION:
cmp DX, 3
jge BEGIN
jmp END
BEGIN:
mov AX, 1
and AX, BX
jz EVEN
jmp ODD
EVEN:
mov CX, 13
lea SI, ev
sub BX, DX
mov AX, tmpBX
mov tmp, AX
jmp STEP
ODD:
mov CX, 15
lea SI, od
mov tmp, BX
add BX, AX
STEP:
cld
lea DI, expr
rep movsb
mov tmpDX, DX
mov tmpBX, BX
mov BX, tmp
mov tmp, BX
call println
mov DX, tmpDX
mov BX, tmpBX
sub DX, 8
jmp CONDITION
END:
ret
println PROC
call To_ASCII
mov AH, 9
lea DX, expr
int 21h
lea DX, value
int 21h
lea DX, rn
int 21h
mov CX, 5
lea DI, value
lea SI, clrValue
rep movsb
ret
println ENDP
To_ASCII proc
mov CL, 4
mov AX, tmp
cmp AH, 0
jnz NONZERO
lea DI, value+1
jmp NEXT
NONZERO:
lea DI, value+3
NEXT:
mov BX, tmp
M3: mov AX, BX
and AX, 1111b
cmp AX, 9
jg M1
or AX, 30h
jmp M2
M1: add AX, 37h
M2: stosb
sub DI, 2
shr BX, CL
jnz M3
ret
To_ASCII endp
Додаток Б
Блок-схема програми
Размещено на Allbest.ru
...Подобные документы
Загальна структура комп'ютера, архітектура процесора типу Intel 8086. Принцип роботи пам'яті, її види (постійна та оперативна). Основи програмування на мові асемблер та її синтаксис. Особливості використання позначок, кодів команд, операндів і директив.
лабораторная работа [36,0 K], добавлен 27.02.2013Реалізація програми на мові асемблера для процесора i8086. Регістрова структура процесора. Використання сегментних регістрів для апаратної підтримки найпростішої моделі сегментованої пам'яті. Формування арифметичних прапорців. Система команд процесора.
контрольная работа [240,5 K], добавлен 27.02.2013Функциональная схема микропроцессора Intel 8086 (i8086). Формирование физического адреса памяти, выборка команд из памяти и запись их в очередь команд. Система команд процессора. Суть защищенного режима, переход из защищенного режима в реальный режим.
практическая работа [93,3 K], добавлен 24.03.2013Створення програми з нетривіальною логікою на мові Асемблер, реалізуючи запропонований алгоритм за допомогою команд розгалуження та циклу. Механізми передачі керування та зміна послідовності виконання команд. Типи адресації. Команди умовного переходу.
лабораторная работа [390,3 K], добавлен 27.02.2013Мова асемблер для кожного типу комп'ютера своя. Асемблер орієнтований саме на специфіку комп'ютера або на специфіку процесора. Мікропроцесори, що належать до різних сімейств, мають свої системи команд. Система команд МП ІA 32 - режими адресації.
лекция [36,2 K], добавлен 13.04.2008Історія виникнення та характеристика мікропроцесора Power. Архітектура мікропроцесора MPC8640D. Порівняння процесорів MPC8640D і Core i5 650. Будова мікропроцесорної системи. Формалізація задачі, розробка програми на Assembler. Створення ехе–файлу.
курсовая работа [2,0 M], добавлен 13.06.2010Аналіз роботи обчислювальних пристроїв, побудованих за RISC-архітектурою. Центральний процесор і внутрішня пам'ять мікроконтролерів AVR компанії Atmel. Принцип побудови AVR-контролера ATtiny2313: складові частини; програмування пам'ятi мовою Асемблер.
курсовая работа [1,1 M], добавлен 27.07.2015Створення двух файлів В1 і В2 з шести двоцифрових цифр з введенням в довільному порядку цифр з клавіатури із записуванням парних цифр в файл В3, а непарних - у файл В4. Процес розробки програми за допомогою мови "Асемблер". Блок-схема алгоритму задачі.
курсовая работа [37,6 K], добавлен 26.11.2011Розробка програми на мові програмування Асемблер для обчислення виразу. Розрахунок значень А, В, С у процедурах. Аналіз отриманих результатів за допомогою відлагоджувальника Turbo Debugger при різних заданих значеннях та перевірка їх правильності.
лабораторная работа [203,4 K], добавлен 09.01.2013Основні принципи об’єктно-орієнтованого програмування. Типові середовища програмування та особливості мови С++. Етапи проектування БД. Розробка програмного забезпечення для реалізації створення бази відеофільмів. Основні положення та моделі БД.
курсовая работа [2,7 M], добавлен 24.03.2011Програмування під DOS мовою низького рівня Асемблер (ASM-86). Функції програми: виведення в довільне місце екрану тексту заданого стилю та кольору, змінення шрифту, розміру літер та напрямку їх виводу. Алгоритм програми, системні вимоги до комп'ютера.
курсовая работа [47,4 K], добавлен 03.06.2009Класифікація об'єктно-орієнтованих мов програмування. Розробка алгоритмічного та програмного забезпечення комп'ютерної системи управління процесом випалювання будівельних матеріалів. Тестування програмного забезпечення, оцінка його ефективності.
курсовая работа [1,6 M], добавлен 25.04.2015Основні принципи дії та архітектура прототипних варіантів CISC-комп'ютера. Інструкції асемблерної мови і принцип трансляції асемблерної програми у машинний код. Розробка тестової програми. Перевірка правильності роботи реалізованих команд у прикладах.
курсовая работа [446,1 K], добавлен 03.02.2011Дослідження можливостей та властивостей мікроконтролера ATtiny13, його архітектури. Розробка програми, що керує роботою мікропроцесора. Моделювання роботи системи кодового захисту з однією кнопкою. Організація пам’яті та розподіл адресного простору.
курсовая работа [1,0 M], добавлен 01.06.2013Элементы процессора, аппаратный уровень. Устройство управления, микропрограммный автомат. Процессор Intel 8086, сегментная организация памяти. Команды, главные особенности их кодирования. Результат дизассемблирования программы отладчиком TurboDebugger.
лекция [1,1 M], добавлен 14.12.2013Розробка резидентної програми за допомогою мови асемблер, яка дозволить перехопити зміст текстового та графічного екрану у файл (відповідно TXT і BMP). Вибір та обґрунтування методу розв'язки даної задачі. Алгоритм і реалізація програми, системні вимоги.
курсовая работа [14,9 K], добавлен 08.08.2009Огляд низькорівневих команд. Застосування мнемонічних позначень та макровизначень (макросів). Різниця між мовою асемблера та мовою машинних кодів. Асемблери для DOS, Microsoft Windows та GNU/Linux. Принцип роботи контролера клавіатури і його інтерфейс.
курсовая работа [30,0 K], добавлен 19.11.2010Широкі можливості по використанню комп'ютерних навчальних систем. Розробка навчальної системи мультимедійного посібника з дисципліни "Інформатика і ОТ" на тему "Особливості мови програмування С++. Вказівники". Вимоги до розробки навчальної програми.
курсовая работа [2,9 M], добавлен 23.11.2010Концепції об'єктно-орієнтованого програмування. Методи створення класів. Доступ до методів базового класу. Структура даних, функції. Розробка додатку на основі діалогових вікон, програми меню. Засоби розробки програмного забезпечення мовами Java та С++.
курсовая работа [502,5 K], добавлен 01.04.2016Створення програми для роботи з веб-камерою з автоматичним визначенням встановленої камери на комп'ютері. Характеристика апаратної конфігурації програми. Опис мови і середовища програмування. Розробка алгоритму, інструкції для програміста та користувача.
курсовая работа [1,2 M], добавлен 26.07.2013