Система команд
СИСТЕМА КОМАНД МІКРОПРОЦЕСОРА8085 ФІРМИINTEL
A.1. Що таке система команд?
Будь-який комп'ютер, незалежно від того, як визначати це поняття, може робити тільки те, що йому наказує робити людина. Програма для комп'ютера - це послідовність команд, які комп'ютер розпізнає та відповідно до цього виконує певні дії. Помістивши один раз програму в область пам'яті, доступну для процесора, можна змусити комп'ютер виконати закодовану в цій програмі послідовність дій стільки разів, скільки разів Вам потрібно вирішити те саме завдання. Набір команд, які вміє розпізнавати процесор 8085A, зафіксований в конструкції кристала.
Кожна команда комп'ютера ініціює виконання певної дії. У мікропроцесорі 8085А реалізована група команд пересилання даних між регістрами, між регістрами та ОЗУ та між регістрами та портами вводу-виводу. Крім того, є арифметичні та логічні команди, команди умовного та безумовного переходу, команди управління Мікропроцесор розпізнає ці команди лише у тому випадку, коли вони закодовані у двійковому уявленні.
А.2. Символи таскорочення
Наступні символи та скорочення використовуються в короткому описі системи команд мікропроцесора 8085A.
Акумулятор Реєстр А
Дані 8-розрядні дані
Дані 16 16-розрядні дані
Байт2Другий байт команди
Байт 3 Третій байт команди
r, r1, r2 Один з регістрів
DDD, SSS Бітові комбінації, що вказують на один з регістрів А. В, С, Д Е, Н, L
(DDD-приймач, SSS-джерело):
DDD або SSS Ім'я регістру
rp Одна з реєстрових пар:
В визначає пару B-С у регістрі В-старші розряди, в регістрі С-молодші.
D визначає пару D-E, в регістрі D - старші розряди, в регістрі Е-молодші Н-визначає пару Н-L-в регістрі Н-старші розряди, в регістрі L-молодші SP визначає 16-розрядний регістр-покажчик стека
RP Комбінація розрядів, що вказує на одну з пар регістрів
RP Реєстрова пара
rh Перший регістр (містить старші розряди) із зазначеної регістрової пари.
rl Другий регістр (містить молодші розряди) із зазначеної регістрової пари.
PC 16-розрядний регістр лічильника
команд (для посилання на старші та молодші 8 розрядів використовуються відповідно позначення РСН та PCL)
SP 16-розрядний регістр покажчика стека (для посилання на старші та молодші 8 розрядів використовуються відповідно позначення SPH та SPL)
rm m-й розряд регістру r (розряди пронумеровані від 7 до 0 зліва направо)
АС Додаткове перенесення
( ) Вміст комірки пам'яті
або регістру, зазначеного у дужках
U Логічне АБО
¯ «Доповнення» (наприклад, (?))
n Номер осередку програмного переривання (від 0-7)
NNN Двійкове представлення номера осередку програмного переривання (000-111)
У довіднику системи команди, наведеному нижче, дається докладний опис всіх команд мікропроцесора 8О85А, Опис кожної команди складається з наступних пунктів:
Формат макроассемблера MCS-85, що складається з мнемоніки команди та полів операндів, розташований у першому рядку опису.
У тому ж рядку у дужках наводиться назва команди.
Наступний рядок містить символьний опис дій команди.
За символьним слідує словесний опис.
Після словесного опису наведено схематичнезображення двійкову форму команди.
О.З. Формати команд іданих
Дані у пам'яті зберігаються у вигляді 8-розрядних двійкових цілих чисел:
Старший біт молодший біт
При зберіганні даних у регістрі чи комірці пам'яті необхідно визначити порядок запису розрядів. У процесорі 8085А біт 0 визначений як молодший значний розряд (LSB), а біт 7-як старший значний розряд (MSB).

Реєстровий -у команді визначається регістр або пара регістрів, у яких зберігаються дані.
Безпосередній – дані містяться безпосередньо в команді. Дані можуть бути як 8-розрядні, так і 16-розрядні (спочатку молодші розряди даних, потім старші).
А.5. Прапори умов
У мікропроцесорі 8085А існує п'ять прапорів умов, пов'язаних із виконанням команд: Нуль, Знак, Четність, Перенесення та Додаткове перенесення. Кожен їх представляється як одноразрядного регістру (чи тригера) мікропроцесора. Прапор встановлюється занесенням у розряд 1, а скидається занесенням 0.
У всіх випадках, коли це не обговорюється особливо, команди впливають на прапори умов таким чином:
Нуль - якщо результат виконання команди мав значення 0, то прапор встановлюється, інакше скидається.
Знак - якщо старший розряд результату виконання команди має значення 1 (число негативне), то прапор встановлюється, інакше скидається.
Четність - якщо сума бітів результату виконання команди за модулем 2 дорівнює 0 (тобто якщо число одиниць у ньому парне), то прапор встановлюється, в іншому випадку (тобто коли число одиниць в результаті непарне) скидається.
Перенесення - якщо в результаті виконання команди було перенесення (наприклад, в результатіскладання) або позику (у результаті - віднімання чи порівняння) з старшого значущого розряду, то прапор встановлюється, інакше скидається. Додаткове перенесення якщо команда викликає перенесення з третього до четвертого розряду результату, то прапор встановлюється, інакше скидається. Цей прапор встановлюється командами додавання, віднімання, збільшення, зменшення, порівняння та логічними операціями, але в основному використовується в команді DAA-десяткової корекції акумулятора.
А.6. Довідник посистемі команд
У цьому розділі наводиться опис всіх команд мікропроцесора 8085А, розділених на п'ять груп таким чином:
Команди пересилання даних -пересилають дані між регістрами або між регістрами та осередками пам'яті. Включають команди пересилання, завантаження, запису та обміну.
Арифметичні команди - складають, віднімають, збільшують і зменшують дані в регістрах та пам'яті,
Логічні команди – виконання операцій І, АБО, ВИКЛЮЧНЕ АБО, порівняння, зсуву та доповнення даних у регістрах або осередках пам'яті.
Команди переходу - умовні та безумовні переходи, виклики підпрограм, повернення з підпрограм та програмні переривання.
Команди роботи зі стеком, введення-виведення та управління процесором - команди роботи зі стеком, читання вхідних портів, запис у вихідні порти, встановлення та читання масок переривань та прапорів умов.
Описані у довіднику формати команд відповідають коду, що генерується асемблером, який використовується в інструментальних системах Intellec® фірми Intel.
А.6.1. Команди пересилання даних
Команди цієї групи служать для пересилання даних між регістрами, і навіть між регістрами і осередками пам'яті. Ці команди не впливають на прапори умов.
Вміст регістру r2 пересилається в регістр r1.