Вступ:
А мікропроцесор це багатоцільовий, програмований електронний пристрій на основі регістрів, що керується годинником і який зчитує двійкові інструкції із запам’ятовуючого пристрою, який називається пам’яттю, приймає двійкові дані як вхідні дані та обробляє дані відповідно до цих інструкцій і надає результати як вихідні дані. Мікропроцесор 8085 є 8-розрядним мікропроцесором другого покоління і є основою для вивчення та використання всіх доступних на ринку мікропроцесорів.
Навіщо використовувати регістри в мікропроцесорі 8085?
Ось кілька причин, чому регістри використовуються в мікропроцесорі 8085:
- Тимчасове зберігання: Регістри використовуються як місця тимчасового зберігання даних, які мають бути оброблені мікропроцесором. Наприклад, під час виконання арифметичних операцій операнди зазвичай зберігаються в регістрах.
- Адресація: регістри використовуються для адресації ділянок пам'яті в мікропроцесорі 8085. Регістр програмного лічильника (PC) відстежує розташування в пам'яті поточної інструкції, тоді як регістр покажчика стека (SP) відстежує вершину стека.
- Введення/виведення: регістри використовуються для зв’язку з пристроями введення/виведення (I/O). Наприклад, регістр накопичувача (A) використовується для зв'язку з шиною даних, яка підключена до пристроїв введення-виведення.
- Інформація про стан: Регістри використовуються для зберігання інформації про стан мікропроцесора. Наприклад, регістр прапорів зберігає інформацію про результати арифметичних і логічних операцій, включаючи те, чи є результат від’ємним, нульовим чи переносним.
- Оптимізація: регістри використовуються для оптимізації продуктивності мікропроцесора. Використовуючи регістри для зберігання часто використовуваних даних і інструкцій, мікропроцесор може отримати доступ до цієї інформації швидше, ніж якби йому довелося отримувати її з пам'яті.
Реєстри в 8085:
(a) Реєстри загального призначення – 8085 має шість регістрів загального призначення для зберігання 8-бітових даних; вони позначаються як B, C, D, E, H і L. Їх можна об’єднати як пари регістрів – BC, DE і HL для виконання деяких 16-бітних операцій. Ці регістри використовуються для зберігання або копіювання тимчасових даних за допомогою інструкцій під час виконання програми.
(b) Реєстри спеціального призначення –
- Акумулятор: Акумулятор — це 8-бітний регістр (може зберігати 8-бітні дані), який є частиною арифметичного та логічного пристрою (ALU). Після виконання арифметичних або логічних операцій результат зберігається в накопичувачі. Акумулятор також визначається як регістр A. Регістри прапорів:
Регістр прапорів є регістром спеціального призначення, і він повністю відрізняється від інших регістрів мікропроцесора. Він складається з 8 бітів і тільки 5 з них корисні. Інші три залишаються вакантними та використовуються в майбутніх версіях Intel. Ці 5 прапорів встановлюються або скидаються (якщо значення прапора дорівнює 1, він вважається встановленим, а коли значення дорівнює 0, він вважається скинутим). ) після операції відповідно до умови даних результату в накопичувачі та інших регістрах. 5 регістрів прапорів:- Знаковий прапор: він займає сьомий біт регістра прапорів, який також відомий як старший біт. Це допомагає програмісту дізнатися, чи є число, що зберігається в акумуляторі, позитивним чи негативним. Якщо встановлений прапор знака, це означає, що число, що зберігається в накопичувачі, є від'ємним, а якщо скинуто, то число є додатним. Нульовий прапор: : він займає шостий біт регістра прапорів. Він встановлюється, коли операція, виконана в ALU, призводить до нуля (всі 8 бітів дорівнюють нулю), інакше він скидається. Це допомагає визначити, чи рівні два числа чи ні. Допоміжний прапор переносу: він займає четвертий біт регістра прапора. Під час арифметичної операції, коли прапор переносу генерується третім бітом і передається на четвертий біт, тоді встановлюється допоміжний прапор переносу. Якщо ні, прапор скидається. Цей прапорець використовується внутрішньо для операцій BCD (десяткове число з двійковим кодом). Примітка - Це єдиний реєстр прапорів у 8085, який недоступний для користувача. Прапор парності: займає другий біт регістра прапора. Цей прапорець перевіряє кількість одиниць у накопичувачі. Якщо накопичувач містить парну кількість одиниць, тоді цей прапорець встановлюється, і він вважається парним. З іншого боку, якщо кількість одиниць непарна, тоді вона скидається, і це називається непарною парністю. Прапор переносу: займає нульовий біт регістра прапора. Якщо арифметична операція призводить до переносу (якщо результат перевищує 8 біт), тоді встановлюється прапор переносу; інакше він скидається.
(c) Регістри пам’яті – Є два 16-розрядних регістри, які використовуються для зберігання адрес пам'яті. Розмір цих регістрів становить 16 біт, тому що адреси пам'яті мають 16 біт. Вони є :-
- Програмний лічильник: цей регістр використовується для послідовності виконання інструкцій. Функція програмного лічильника полягає в тому, щоб вказати адресу пам’яті, з якої має бути отриманий наступний байт. Коли байт (машинний код) вибирається, програмний лічильник збільшується на одиницю, щоб вказати на наступне місце пам’яті. Покажчик стека: використовується як покажчик пам'яті. Він вказує на місце пам’яті в пам’яті для читання/запису, яке називається стеком. Він завжди збільшується/зменшується на 2 під час операції натискання та висунення.
- Знаковий прапор (7-й біт): скидається (0), що означає, що число, що зберігається в акумуляторі, додатне. Прапор нуля (6-й біт): скидається (0), тому результат операцій, виконаних в ALU, відмінний від нуля. Допоміжний прапор переносу (4-й біт): ми бачимо, що b3 генерує перенос, який приймає b4, таким чином встановлюється допоміжний прапор переносу (1). Прапор парності (2-й біт): скидається (0), це означає, що парність непарна. Акумулятор містить непарну кількість одиниць. Прапор переносу (0-й біт): встановлено (1), результатом виведення є більше 8 біт.
Використання регістрів мікропроцесора 8085:
Ось деякі типові способи використання різних регістрів у мікропроцесорі 8085:
- Регістр накопичувача (A): Регістр накопичувача є найбільш часто використовуваним регістром у мікропроцесорі 8085. Він використовується для арифметичних і логічних операцій, а також для операцій введення/виведення (I/O). Акумулятор також використовується як місце тимчасового зберігання даних.
- Регістр програмного лічильника (PC): Регістр PC використовується для відстеження розташування в пам'яті поточної інструкції. Коли інструкція виконується, регістр ПК автоматично збільшується, щоб вказати на наступну інструкцію в пам’яті.
- Регістр покажчика стека (SP): регістр SP використовується для відстеження вершини стека. Стек використовується для тимчасового зберігання даних і зворотних адрес під час викликів підпрограм.
- Регістр прапорів: регістр прапорів використовується для зберігання інформації про стан результатів арифметичних і логічних операцій, зокрема про те, чи є результат від’ємним, нульовим чи переносним.
- Регістри загального призначення (B, C, D, E, H і L): ці регістри використовуються для зберігання даних загального призначення, а також для адресації ділянок пам’яті. Їх можна використовувати в парах як 16-розрядні регістри, такі як BC, DE і HL, для більш ефективної адресації ділянок пам'яті.
- Регістр інструкцій (IR) і регістр машинного циклу (MCR): ці регістри використовуються внутрішньо мікропроцесором для декодування інструкцій і керування часом машинних циклів.
Особливості цих реєстрів:
- Усі регістри мікропроцесора 8085 мають прямий доступ до арифметично-логічного пристрою (ALU), що забезпечує ефективну обробку даних.
- Регістр накопичувача використовується як призначення за замовчуванням для більшості арифметичних і логічних команд, що спрощує програмування.
- Регістри загального призначення можна використовувати для зберігання даних під час обчислень, але вони також можуть використовуватися для зберігання адрес пам'яті, що робить їх корисними для доступу до місць пам'яті.
- Регістри лічильника програми та покажчика стека мають вирішальне значення для керування потоком інструкцій і даних у програмі.
- Регістр прапорів надає цінну інформацію про результати арифметичних і логічних операцій, що дозволяє ефективно приймати рішення в програмах.
- Регістр інструкцій зберігає поточну інструкцію, що виконується, що забезпечує ефективне декодування та генерацію керуючого сигналу блоком керування.
Переваги:
- Швидкий доступ: Реєстри забезпечують швидкий і ефективний спосіб доступу до даних і виконання операцій. Оскільки регістри розташовані всередині процесора, до них можна отримати швидкий доступ, не чекаючи, поки дані будуть отримані з пам’яті. Зменшений доступ до пам'яті: використання регістрів може допомогти зменшити кількість необхідних звернень до пам'яті, що може покращити загальну продуктивність системи. Спеціальна функціональність: кожен регістр у мікропроцесорі 8085 має певну функцію, таку як акумулятор для арифметичних операцій і програмний лічильник для збереження адреси наступної інструкції. Ця спеціалізована функція може полегшити програмування та налагодження. Знижена складність: надаючи спеціальні регістри для конкретних цілей, мікропроцесор 8085 зменшує складність процесу програмування та виконання.
Недоліки:
- Обмежена ємність зберігання: мікропроцесор 8085 має обмежену кількість регістрів, що може обмежити кількість даних, які можна зберігати та маніпулювати в будь-який момент часу. Складні режими адресації: деякі з режимів адресації, які використовуються в мікропроцесорі 8085, можуть бути складними, що ускладнює програмування. Перемикання контексту: У деяких випадках перемикання між різними наборами регістрів може додати накладних витрат і ускладнити процес програмування. Відсутність гнучкості: фіксована кількість і функції регістрів у мікропроцесорі 8085 можуть обмежити гнучкість системи та ускладнити її адаптацію до мінливих вимог.