Архитектура микропроцессора i8086

Автор работы: Пользователь скрыл имя, 18 Декабря 2013 в 20:29, практическая работа

Краткое описание

Шестнадцатіразрядное арифметико - логічний пристрій (АЛП ), що входить в апаратні засоби І Б, стежить за прапорцями стану і керуючими прапорцями ЦП, маніпулює регістрами загального призначення ( РОН ) і виконує різні дії над операндами команд. Для швидкого здійснення внутрішніх пересилань регістри ІБ і лінії даних зроблені 16 - розрядними.
Виконавчий блок не має з'єднання з системною шиною, а адресовані йому команди отримує з черги, що обслуговується БІШ. Всякий раз, коли деяка команда вимагає звернення до пам'яті або певному УВВ, виконавчий блок формує запит до БІШ на отримання або запам'ятовування даних. Хоча при цьому ІБ маніпулює тільки 16 - розрядними адресами, БІШ здатний виконувати переадресацію і забезпечувати таким чином доступ ІБ до всього мегабайтную простору адрес.

Содержание

РЕФЕРАТ…………………………………………………………………………..….
1. ТЕОРЕТИЧНА ЧАСТИНА……………………………………………………..….
1.1 АРХИТЕКТУРА МИКРОПРОЦЕССОРА i8086……………….…………..
1.2 МОВА АССЕМБЛЕРА………………………………………………………
1.2.1 Зміст мови ……………...………………………………...……………..
1.2.2 Переваги та недоліки…………………………………...………………
1.2.2.1 Переваги………………………………………...……………..…
1.2.2.2 Недоліки…………………………………………………………
1.2.3 Застосування ………………………………………..….………………
1.2.4 Зв'язування програм на різних мовах ……………….….…………….
1.2.5 Набір команд ……………………………………………...……………
1.2.6 Інструкції……………………………………….…….…...…………….
1.2.7 Директиви………………………………………...…….……………….
1.2.8 Приклад програми ……………………………...….…………………..
2. РОЗРАХУНКОВА ЧАСТИНА……….…………..…..……...….……….………...
2.1 Вхідні данні…………………………………………………………………..
2.2 Блок схема…………………………………………….…….….….…………
2.3 Лістінг програми згідно з варіантом ……..………….….……….…………
2.4 Скриншоти програми…………..……………..………….……….…………
ВИСНОВКИ………….……………….……………………………………….………
ПЕРЕЛІК ПОСИЛАНЬ………………..……………………………………………...

Прикрепленные файлы: 1 файл

RGZ.doc

— 260.50 Кб (Скачать документ)


МІНІСТЕРСТВО ОСВІТІ ТА НАУКИ УКРАЇНИ

ЗАПОРІЗЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

 

 

Кафедра МіНЄ

 

 

 

 

РОЗРАХУНКОВО-ГРАФІЧНЕ ЗАВДАННЯ

з дисципліни

«мікропроцесорна техніка»

 

 

 

 

Виконав:

Студент 4 курсу, групи РТ-410     Троцюк І.М.                   

 

 

Прийняв:

доц., канд. фіз.-матем. наук                         Жавжаров Є.Л.

 

 

 

 

 

 

2013 р.

 

РЕФЕРАТ

 

Звіт про РГЗ:  24 ст., 6 рис., 12 джерел.

 

 

 

 

 

ЗМІСТ

 

 

РЕФЕРАТ…………………………………………………………………………..….

1. ТЕОРЕТИЧНА ЧАСТИНА……………………………………………………..….

1.1 АРХИТЕКТУРА МИКРОПРОЦЕССОРА i8086……………….…………..

1.2 МОВА АССЕМБЛЕРА……………………………………………………

1.2.1 Зміст мови ……………...………………………………...……………..

1.2.2 Переваги та недоліки…………………………………...………………

1.2.2.1 Переваги………………………………………...……………..…

1.2.2.2 Недоліки…………………………………………………………

1.2.3 Застосування ………………………………………..….………………

1.2.4 Зв'язування програм на різних мовах ……………….….…………….

1.2.5 Набір команд ……………………………………………...……………

1.2.6 Інструкції……………………………………….…….…...…………….

1.2.7 Директиви………………………………………...…….……………….

1.2.8 Приклад програми ……………………………...….…………………..

2. РОЗРАХУНКОВА ЧАСТИНА……….…………..…..……...….……….………...

2.1 Вхідні данні…………………………………………………………………..

2.2 Блок схема…………………………………………….…….….….…………

2.3 Лістінг програми згідно з варіантом ……..………….….……….…………

2.4 Скриншоти програми…………..……………..………….……….…………

ВИСНОВКИ………….……………….……………………………………….………

ПЕРЕЛІК ПОСИЛАНЬ………………..……………………………………………...

 

1. ТЕОРЕТИЧНА ЧАСТИНА

1.1 АРХИТЕКТУРА МИКРОПРОЦЕССОРА i8086

У спрощеному вигляді  послідовність подій, що відбуваються в мікропроцесорі при виконанні якої-небудь програми, могла б бути представлена ​​наступним чином:

1 ) Вибірка чергової  команди з пам'яті.

2 ) Читання операнда (якщо  це вимагається згідно з командою ).

3 ) Виконання команди.

4 ) Запис результату ( якщо цього вимагає виконувана  команда).

В рамках раніше існуючих архітектур ЦП ці кроки виконувалися послідовно або з єдиним перекриттям  циклу вибірки шини. Архітектура ж процесора 8086 така, що ті ж самі кроки розподіляються. між різними внутрішніми блоками обробки даних. При цьому виконання команд покладається на виконавчий блок (ІБ ), а вибірку команд, читання операндів і запис результатів здійснює блок інтерфейсу шини ( БІШ ) ; це розподіл функцій відображено на рисунку 1.1. Обидва зазначених блоку працюють незалежно, і в більшості випадків відбувається інтенсивне поєднання операцій вибірки команд і виконання чергової команди. І Б виконує команди, які вже попередньо обрані з ОЗУ за допомогою БІШ, і тому загальний час вибірки команд істотно скорочується.

Шестнадцатіразрядное  арифметико - логічний пристрій (АЛП ), що входить в апаратні засоби І Б, стежить за прапорцями стану і керуючими прапорцями ЦП, маніпулює регістрами загального призначення ( РОН ) і виконує різні дії над операндами команд. Для швидкого здійснення внутрішніх пересилань регістри ІБ і лінії даних зроблені 16 - розрядними.

Виконавчий блок не має  з'єднання з системною шиною, а адресовані йому команди отримує з черги, що обслуговується БІШ. Всякий раз, коли деяка команда вимагає звернення до пам'яті або певному УВВ, виконавчий блок формує запит до БІШ на отримання або запам'ятовування даних. Хоча при цьому ІБ маніпулює тільки 16 - розрядними адресами, БІШ здатний виконувати переадресацію і забезпечувати таким чином доступ ІБ до всього мегабайтную простору адрес. Всі операції взаємодії з шиною ІБ виконує за посередництва БІШ; пересилання даних між ЦП і пам'яттю або зовнішніми пристроями реалізується за вимогою ІБ.

Тоді, коли ІБ зайнятий виконанням команд, БІШ вибирає з пам'яті чергові команди і поміщає їх у внутрішнє ЗУПВ, в масив, званий чергою потоку команд. Мікропроцесор 8086 дозволяє зберігати в такій черзі до 6 байт команд одночасно, завдяки чому в більшості випадків БІШ забезпечує завантаження ІБ попередньо вибраними командами без заняття системної шини.

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

У ІБ є вісім 16 - розрядних регістрів, об'єднаних у дві групи по чотири регістри в кожній. Першу групу складають регістри даних ( Н і L), а друга - регістри покажчиків і індексні (Р і I). Будь регістр даних може використовуватися як два 8 - розрядних регістра або один 16 - розрядний. Всі інші регістри ЦП завжди розглядаються як 16 - розрядні пристрої. Регістрів покажчиків два: покажчик стека (УС ), що містить поточну адресу стека, і покажчик бази ( УБ), який зазвичай використовується при звертанні процесора 8086 до пам'яті. Пара індексних регістрів індекс - регістр джерела ( ІІ) та індекс - регістр результату (ІР )] беруть участь в операціях індексної адресації. Всі перераховані вісім регістрів можуть використовуватися як єдиний блок, званий накопичувальним регістром або акумулятором.

БІШ містить чотири 16 - розрядних регістра адреси сегмента і один 16 - розрядний покажчик команд ( КК), аналогічний лічильнику команд в мікропроцесорах 8080 і 8085. Весь простір пам'яті мікропроцесора 8086 ємністю 1М байт розділене на сегменти по 64К байт. Забезпечується прямий доступ ЦП відразу до чотирьох таким сегментам, базові адреси яких містяться в регістрах адреси сегмента ( PC). Перший з сегментних регістрів називається регістром програмного сегмента ( ПС). Він вказує на поточний сегмент програм, з якого виробляється вибірка команд. Дійсний адреса команди в пам'яті обчислюється шляхом додавання вмісту регістра ПС з вмістом КК. Другий регістр - регістр стекового сегмента ( СС ) визначає поточний стековий сегмент, в якому мають виконуватися операції над стеком. Дійсний адреса стека виходить додатком вмісту регістра СС до вмісту УС виконавчого блоку. Третій регістр - регістр інформаційного сегмента ( ІС) вказує сегмент пам'яті, в якому в даний момент зберігаються змінні виконуваної програми. Нарешті, регістром додаткового сегмента ( ДС ) вказується поточний додатковий сегмент пам'яті (четвертий блок ємністю 64К ), в якому зазвичай зберігаються дані. Всі сегментні регістри доступні для програм і можуть брати участь у їх виконанні.

Рисунок 1.1 - Структура процесора.

 

Збільшення ємності  пам'яті забезпечує перехід до Мультипрограмування, тому в мікропроцесорі 8086 передбачено  кілька мультипрограмних можливостей. Крім того, в мікропроцесор 8086 вбудовані  деякі засоби, що спрощують реалізацію мультипроцесорних систем, що дозволяє застосовувати його з іншими процесорами, наприклад з процесором числових даних 8087.

Рисунок 1.2 - Розводка контактів корпусу  мікропроцесора 8086

 

На рисунку 1.2 приведена  розводка контактів корпусу мікропроцесора 8086. Він має 20 ліній адреси, 16 з яких використовуються і як лінії даних. Ця обставина призводить до того, що на системну шину не можна одночасно видавати адреси і дані. Мультиплексування адрес і даних у часі скорочує число контактів корпусу, але і уповільнює швидкість передачі даних. Однак завдяки ретельно розробленій тимчасовій діаграмі роботи швидкість передачі зменшується не настільки значно, як цього слід було б очікувати. Мікропроцесор має 16 ліній управління, призначених для сигналів квитування під час передач даних і зовнішнього управління ЦП. Він розрахований на одне напруга живлення +5 В і однофазну синхронізацію, частота якої сягає 5 МГц. (Модель 8086-2 має частоту синхронізації до 8 МГц, а модель 8086-1 - до 10МГц) Два контакту 1 і 20 підключаються на землю.

1.2 МОВА АССЕМБЛЕРА

 

 

Мова асемблера (англ. assembly language) - машинно-орієнтована мова низького рівня з командами, зазвичай відповідними командам машини, який може забезпечити додаткові можливості начебто макрокоманд; автокод, розширений конструкціями мов програмування високого рівня, такими як вираження, макрокоманди, засоби забезпечення модульності програм.

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

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

 

      1. Зміст мови

 

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

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

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

Кожна модель (або сімейство ) процесорів має свій набір - систему - команд і відповідний йому мову асемблера. Найбільш популярні синтаксиси мов асемблера - Intel - синтаксис і AT & T- синтаксис.

Існують комп'ютери, які реалізують в якості машинного мову програмування високого рівня ( Форт, Лісп, Ель- 76). Фактично, в таких комп'ютерах вони виконують роль мов асемблера.

 

      1. Переваги і недоліки

 

1.2.2.1 Переваги

 

Мова асемблера дозволяє писати найшвидший і компактний код, який взагалі можливий для даного процесора.

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

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

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

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

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

Мова асемблера використовується для створення « прошивок » BIOS.

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

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

 

 

 

 

1.2.2.2 Недоліки

Информация о работе Архитектура микропроцессора i8086