
- •Будова й налагодження систем програмного управління
- •1. Поняття про мікропроцесор і мікрокомп'ютер
- •2. Програмно-доступні регістри
- •3. Організація основної пам'яті в двк
- •4. Системи кодування.
- •5. Режими адресації пам'яті в мс1202
- •5.1 Формати команд
- •5.2 Адресація через рон
- •6. Формати команд мікрокомп'ютера мс1202
- •7. Система команд мікрокомп'ютера мс1202
- •8. Введення і виведення даних в мс1202
- •9 Завдання для самоперевірки
7. Система команд мікрокомп'ютера мс1202
У мікрокомп'ютерах МС1202 є 69 типів команд, кожен з яких відповідає одному з дев'яти форматів, описаних в попередньому параграфі. Кожна команда характеризується мнемонічним записом і кодом першого (або єдиного) слова команди. Цей код є машинним кодом операції у вигляді групи вісімкових цифр і позначення інших полів залежно від формату команди (див. рисунок 3.7). Наприклад, код команди галуження BR має вигляд 0004ХХ, де 0004 — вісімкові цифри коди операції, а XX - позначення двох вісімкових цифр поля зсуву.
Однією з характеристик даних 16-бітових мікрокомп'ютерів є можливість виконувати багато операцій над словами і над байтами (півсловами). Мнемонічний запис операції над байтами виходить додаванням латинської букви В до мнемонічного запису відповідної операції над словами. Наприклад, команді MOV для виконання операції по пересилці слова відповідає команда MOVB, призначена для пересилки байта. Коди двох команд, одна з яких призначена для операції над словами, а інша, відповідна їй, для операцій над байтами, розрізняються лише старшою (лівою) цифрою: ця цифра є 0 в "словных" командах і 1 в байтових командах. Оскільки зазвичай наводиться загальний код для обох різновидів команди, то на місці старшої цифри вказується знак "*". Наприклад, загальний код команд MOV(B) має вигляд * 1SSDD, і тому код команди MOV є 01SSDD, а код команди MOVB - 11SSDD.
Код будь-який з команд може бути перетворений у фактичний машинний код заміною позначень, що входять в код конкретними вісімковими цифрами, які можуть залежати від місця і фактичної ролі команди в програмі.
По функціональному призначенню систему команд МС1202 розділяють на наступні шість груп: 1) команди пересилки, обміну, побітового скидання і установки; 2) арифметичні команди і команди модифікації; 3) логічні команди, команди зрушення, порівняння і перевірки; 4) команди передачі і повернення управління; 5) команди управління ознаками умов; 6) команди управління перериваннями і спецкоманди.
Команди пересилки, обміну, побітового скидання і установки. Вони призначені для переміщення даних між парами регістрів, елементів пам'яті, регістром і елементом пам'яті, зміни місцями вмісту байтів в слові, читання і записи слова стану процесора, а також для скидання і установки заданих бітів в слові. Команди цієї групи можуть впливати на ознаки умов в ССП.
Арифметичні команди і команди модифікації. Вони забезпечують виконання арифметичних операцій, збільшення і віднімання одиниці до вмісту слова або байта і ряд інших операцій над вмістом слова або байта, включаючи здобуття зворотної і додаткової коди числа, що зберігається в заданому слові або байті. Всі команди даної групи можуть впливати на ознаки умов, причому склад змінних ознак залежить від типа команди. Наприклад, команда складання ADD може змінити всі ознаки умов, а команда SXT - лише ознака Z.
Логічні команди, команди зрушення, порівняння і перевірки. Вони призначені для виконання відповідних операцій над однослівними і байтовими даними, які знаходяться в регістрах або елементах пам'яті мікрокомп'ютера. Всі команди цієї групи можуть впливати на ознаки умов в ССП. Слід звернути увагу на те, що більшість команд в даній групі можуть виконувати операції як над основними, так і над байтовими даними.
Команди передачі і повернення управління. Серед команд передачі управління є команда безумовного переходу BR і ряд команд умовного переходу, які можуть здійснювати передачу управління за наявності відповідної умови, що представляється тією або іншою ознакою умови в ССП. Наприклад, команда BNE здійснює перехід, якщо ознака умови Z скинута, тобто дорівнює нулю. Команда SOB віднімає одиницю з вмісту вказаного в ній регістра, і якщо воно не стане після цього дорівнює нулю, здійснює передачу управління. Адреса передачі обчислюється як різниця між поточним вмістом програмного счет- чика і подвоєним вмістом поля зсуву NN. Команда зручна для реалізації циклів в програмах.
Команди управління ознаками умов. У них немає явного завдання операндів. Команди цієї групи дають можливість примусово встановлювати або скидати все або деякі ознаки умов.
Команди управління перериваннями і спецкоманди. Команди управління перериваннями призначені для примусової ініціації переривання і повернення до перерваної програми. Слід особливо відзначити команди ЕМТ і TRAP, кожна з яких може мати цілий ряд код, що розрізняються вмістом молодшого байта команди. Цей вміст фактично є операндом команди і використовується для вибору тієї послідовності операцій, яка повинна виконуватися при виникненні переривання по даній команді. Декілька команд в даній групі реалізують спеціальні (системні) операції. Так, команда RESET здійснює скидання всіх пристроїв у вихідний стан. Команда ж MARK відновлює покажчик стека під час виходу з підпрограми. Команди WAIT і HALT переводять МП в стан чекання або останову відповідно. Із стану чекання МП можна вивести, наприклад, сигналом переривання від зовнішнього пристрою. Нарешті, команда NOP не виконує жодних дій, окрім збільшення вмісту програмного лічильника на два.
У МС1202, що створюються на базі мікропроцесора К1801ВМЗ і його модифікацій, система команд розширена включенням в неї додаткових 46 команд, які призначені для виконання операцій над числами у формі з плаваючою крапкою. Ці команди в даному посібнику не розглядаються.