Пермський державний педагогічний університет p>
кафедра інформатики та ОТ p>
Імітатор роботи процесора p>
(курсова робота) p>
Роботу виконав студент 131 групи математичного факультету p>
Крилов С. Д. p>
Науковий керівник кандидат техн. наук, доцент Половина І. П. p>
ПЕРМ 1999 p>
ЗМІСТ p>
ЗМІСТ 1 p>
Введення. 2 p>
Мікропроцесор як основа ЕОМ. 3 p>
Внутрішня структура мікропроцесора. 3 p>
Система команд мікропроцесора 4 p>
Способи адресації даних 5 p>
Керівництво користувача. 7 p>
Опис програми 7 p>
Написання програми 10 p>
Виконання програми 12 p>
Приклади програм 13 p>
Висновок. 15 p>
Література. 16 p>
Введення. P>
У своїй роботі я спробував викласти загальну схему роботипроцесора і проілюструвати її за допомогою програми-імітатора. p>
У першій частині курсової роботи мною викладені основні теоретичнівідомості про логічне пристрої мікропроцесора, його призначення іпринципи роботи. При цьому я не орієнтувався на конкретний типпроцесора. p>
У другій частині я розглядаю керівництво користувача до своєїпрограмі-імітатори. Дана програма написана в середовищі Delphi. Принаписанні даної програми я орієнтувався на процесор типу PDP, якнайбільш відповідного для вивчення і найбільш часто розглядається впідручниках інформатики. p>
Мікропроцесор як основа ЕОМ. p>
Внутрішня структура мікропроцесора. p>
Будь-яка ЕОМ призначена для обробки інформації причому, як правило,здійснює цю обробку опосередковано - представляючи інформацію у виглядічисел. Для роботи з числами машина має спеціальну найважливішу частину --мікропроцесор. Це універсальне логічне пристрій, який оперуєз двійковими числами, здійснюючи найпростіші логічні і математичніоперації, і не просто як доведеться, а відповідно до програми, тобто взаданої послідовності. Для зберігання цієї заданої послідовностіслужать запам'ятовувальні пристрої - ЗУ. ЗУ бувають постійними - ПЗУ, у якихінформація зберігається, не змінюючись як завгодно довго, і оперативними -
ОЗУ, інформація в яких може бути змінена в будь-який момент відповідноз результатами її обробки. Процесор спілкується з ОЗУ і ПЗУ через такзване адресний простір, в якому кожна комірка пам'яті має своюадресу. p>
МП складається з набору регістрів пам'яті різного призначення, якіпевним чином пов'язані між собою і обробляються відповідно допевною системою правил. Реєстр - це пристрій, призначений длязберігання і обробки двійкового коду. До внутрішніх регістрів процесоравідносять: лічильник адреси команд, вказівник стеку, регістр станів,регістри загального призначення. p>
Наявність лічильника команд було покладено ще в роботах фон Неймана. Рольлічильника полягає в збереженні адреси чергової команди програми іавтоматичному обчисленні адреси наступної. Завдяки наявності програмноголічильника в ЕОМ реалізується основний цикл виконання послідовнорозташованих команд програми. p>
Стек - це особливий спосіб організації пам'яті, при використанніякого достатньо зберігати адреса останньої заповненої комірки ОЗУ.
Саме адреса останньої заповненої комірки ОЗУ і зберігається в покажчику стека.
Стек використовується процесором для організації механізму переривань,обробки звернення до підпрограм, передачі параметрів і тимчасовогозберігання даних. p>
У регістрі станів зберігається інформація про поточні режимах роботипроцесора. Сюди ж можна відслідковувати результати виконуваних команд,наприклад: чи результат дорівнює нулю, негативний чи він, чи не виникли в ходіоперації помилки і т.п. Використання та аналіз у цьому регістрі відбуваєтьсяпобітне, кожен біт регістра має самостійне значення. p>
Регістри загального призначення (РОН) служать для зберігання поточнихоброблюваних даних чи їх адреси в ОЗУ. У деяких процесорів регістрифункціонально рівнозначні, в інших призначення регістрів строгообмовляється. Інформація з одного регістру може віддаватися в іншій. P>
Система команд мікропроцесора p>
Незважаючи на бурхливу еволюцію обчислювальної техніки, основний набіркоманд доволі мало змінився. Система команд будь-який ЕОМ обов'язковомістить такі групи команд обробки інформації. p>
1. Команди передачі даних (перепис), що копіюють інформацію з одного місця в інше. P>
2. Арифметичні операції, до яких в основному відносять операції додавання і віднімання. Множення і ділення зазвичай реалізується за допомогою спеціальних програм. P>
3. Логічні операції, що дозволяють комп'ютера проводити аналіз одержуваної інформації. Найпростішими прикладами команд даної групи можуть служити порівняння, а також відомі логічні операції і, або, не. P>
4. Зрушення двійкового коду ліворуч і праворуч. У деяких випадках зрушення використовуються для реалізації множення і ділення. P>
5. Команди введення і виведення інформації для обміну з зовнішніми пристроями. В деяких ЕОМ зовнішні пристрої є спеціальними службовими адресами пам'яті, тому введення і вивід здійснюється за допомогою команд перепису. P>
6. Команди керування, що реалізують нелінійні алгоритми. Сюди відносять умовний і безумовний переходи, а також команди звернення до підпрограмі (перехід з поверненням). Часто до цієї групи відносять операції з управління процесором типу зупинка чи ні операції. P>
Будь-яка команда ЕОМ зазвичай складається з двох частин - операційної таадресної. Операційна частина що також називається кодом операції вказує,яку дію необхідно виконати з інформацією. Операційна частинає у будь-якої команди. Адресна частина описує, де використовуєтьсяінформація зберігається і куди помістити результат. У деяких командахкерування роботою машини адресна частина може бути відсутніми, наприклад, вкоманді зупину. p>
Код операції можна уявити собі як деякий умовний номер узагальному списку команд. В основному цей список побудований відповідно допевними внутрішніми закономірностями. p>
Адресна частина має значно великою різноманітністю. Основуадресної частини складає операнд. Залежно від кількості можливихоперандів команди можуть бути одно-і двоадресного. У двоадресного командахрезультат записується або в спеціальний регістр (суматор), або замістьодного з операндів. p>
Способи адресації даних p>
Способи (або методи) адресації не що інше, як способи вказівки на теабо інші комірки пам'яті, з якими повинен маніпулювати оператор.
Існує багато різних методів адресації. Кількість їх залежить від типупроцесора. Наявність великої кількості способів адресації забезпечуєвисоку гнучкість у побудові програм і є великою перевагоюсистеми команд даного типу ЕОМ. Способи адресації практично однаковідля всіх команд, в яких присутні операнди. У цьому розділі ядетально розглядаю тільки три основні методи адресації, якізастосовуються майже у всіх процесорах. p>
Реєстрова адресація. При цьому способі операндом є один зрегістрів загального призначення. Число зберігається безпосередньо в реєстрі.
Записується як Rn, де n - номер регістра. P>
Непряма адресація. При цьому способі адресації в одному з регістрівзагального призначення міститься не саме число, з яким потрібно працювати, а йогоадресу, то є номер комірки пам'яті, в якому число знаходиться. Записуєтьсяяк (Rn), де n - номер регістра. p>
автоінкрементним адресація. Цей вид адресації дещо складніше двохпопередніх. Крім основного дії (непрямого звернення до осередкупам'яті), при використанні цього методу, відбувається ще зміна адресицього звернення. У даному випадку збільшується покажчик адреси коміркипам'яті, до якої ми звертаємося, тобто вміст регістру, службовцяпокажчиком адреси. Дане збільшення відбувається автоматично, без будь -небудь команди. Записується ця адресація як (Rn) +. Те, що знак + вартопісля імені регістра, натякає на порядок виконання команди: спочаткувідбувається операція з осередком, на яку вказує адреса поміщений врегістр Rn, а потім вже вміст регістра збільшується на 2 (якщооператор працює зі словом, то перехід до адреси наступного слова), або на
1 (якщо оператор працює з байтом, перехід до адреси наступного байта).
Даний спосіб адресації застосовується для роботи з масивами і привикористанні стека (наприклад, при використанні підпрограм). p>
Існує ще один особливий спосіб адресації, який розглядаєтьсяокремо. Мова йде про роботу зі стеком. Стек - неявний спосіб адресаціїданих, при якому інформація записується і зчитується тількипослідовним чином з використанням покажчика стека. Стек завждимає єдиний вхід і вихід інформації - для зберігання його адреси тапотрібен покажчик стека. При запису даних у стек процесор проробитьнаступне: p>
1) зменшить покажчик стека на 2 (ціле число займає в пам'яті 2 байти); p>
2) запише дані за отриманим адресою. p>
Якщо вийняти даних з стека процесор проробить сліду шиї: p>
1) вважає дані з стека; p>
2) збільшить покажчик на 2. p>
У командах роботи зі стеком адреса ОЗП не фігурує у явному вигляді. Алепри цьому мовчки передбачається, що покажчик стека вже задано. Призавданні покажчика треба бути уважним. Якщо покажчик стека визначенонеправильно, то запис у стек може зруйнувати корисну інформацію в ОЗУ. p>
Таким чином, ми розглянули способи адресації інформації, якііснують майже у всіх типах процесора і які я використав у своємуімітаторі. p>
Керівництво користувача. p>
Опис програми p>
викладену вище структуру мікропроцесора я спробував реалізувати всвоїй програмі. p>
Основну частину програми складає Редактор. Він являє собоюмісце, де вводиться програма, яку виконує процесор. Кожна командавводиться в свою допомогу, що має адресу. Розмір адресного просторуредактора становить 1Кб. Початкова осередок має адресу 1000, кінцева -
2024. Як операнда в одно-і двоадресного командах виступає один зрегістрів загального призначення. Я виділив наступну систему команд.
1. Одноадресних команди. P>
Представлені в наступній формі: Операція операнд ОП1. P>
Очистити ОП1-обнуляє значення операнда. P>
Збільшити на 1 ОП1 - збільшує значення операнда.
Зменшити на 1 ОП1 - зменшує значення операнда.
2. Двоадресного команди. P>
Представлені в наступній формі: Операція перший операнд ОП1 другий операнд ОП2. P>
Переслати ОП1 в ОП2 - пересилає значення першого операнда в другій операнд. P>
Додати ОП1 до ОП2-додає значення першого операнда до другого операнд, результат у другому операнд. p>
відняти ОП1 з ОП2 - віднімає значення першого операнда з другого операнда, результат у другому операнд. p>
Порівняти ОП1 з ОП2 - порівнює різниця другого і першого операнда з нулем, значення операндів не змінюються, результат впливає на стан регістра станів.
3. Безадресні команди. P>
Повернення з підпрограми - здійснює повернення з підпрограми в клітинку, наступну за командою що викликала цю підпрограму, використовується тільки в підпрограма p>
Стоп - команда зупину, ставиться обов'язково в кінці програми, після її виконання ні які команди не виконуються.
4. Команди переходу. P>
Перехід на К слів - безумовний перехід - здійснює перехід на p>
До слів. P>
Виклик підпрограми за адресою - перехід на адресу К з запам'ятовуванням адреси повернення для команди повернення з підпрограми. p>
Якщо перехід на К слів - перехід на К слів, якщо результат p>
0. p>
Якщо = перехід на К слів -- перехід на К слів, якщо результат = 0. p>
Якщо> = перехід на К слів - перехід на К слів, якщо результат p>
> = 0. p>
Якщо> перехід на К слів - перехід на К слів, якщо результат> 0. p>
Якщо <перехід на К слів - перехід на К слів, якщо результат p>