- •Конспект лекцій з предмету “Обчислювальні та мікропроцесорні пристрої в електронних апаратах” введення
- •Основні поняття та визначення мікропроцесорної техніки
- •Класифікація мікропроцесорів та їх основні параметри
- •Вибір мікропроцесорного комплекту для проектування обчислювальних пристроїв і систем
- •Структура мікропроцесорних пристроїв та систем
- •Інтерфейси мікропроцесорних пристроїв і систем
- •Керування роботою мікропроцесорних пристроїв (систем)
- •Тема 1.1. Мікропроцесори (мп) з архітектурою: акумуляторною, з рзп, з стековою організацією.
- •Архітектура мікропроцесорів
- •Домашнє завдання
- •Розділ 1. Основи мікропроцесорної техніки
- •Тема 1.2. Система команд мп.
- •Система команд
- •Мова асемблера
- •Формати команд і даних. Способи адресації
Тема 1.2. Система команд мп.
Лекція №3. Поняття системи команд МП. Використання мови Асемблера. Класифікація команд по функціональному призна ченню. Види адресації операндів в командах.
Система команд
Група команд, які може виконувати МП, називається його системою команд. Система команд МП може містити як маленьку кількість (вісім) так і більшу кількість (200) основних команд.
Класифікація команд однієї системи може бути представлена наступним чином, рис.3.1
Основні |
Додаткові |
Арифметичні |
|
додавання, віднімання, інкрементування, порівняння, заперечення |
додавання з переносом, віднімання з займом, множення та ділення |
Логічні |
|
І, АБО, ВИКЛЮЧАЮЧЕ АБО, НЕ (заперечення), зсув вправо, зсув вліво |
арифметичний зсув вправо, циклічний зсув вправо та вліво, циклічні зсуви вправо та вліво з переносом та тестування |
Команди передачі даних |
|
завантаження (загрузка), розміщення, переміщення, введення (ввод), виведення (вивід) |
команди обміну, скидання та ініціалізації. |
Команди розгалуження (команди прийняття рішень) |
|
безумовний перехід; перехід, якщо нуль; перехід, якщо не нуль; перехід, якщо рівність; перехід, якщо нерівність; перехід, якщо додатне; перехід, якщо від’ємне. |
перехід, якщо більше чи менше; перехід, якщо зсув або ні; перехід, якщо переповнення або ні. |
Команди виклику підпрограми |
|
CALL – виклик |
CALL, якщо нуль; CALL, якщо не нуль; CALL, якщо додатне або не додатне |
Інші команди |
|
немає операції, помістити в стек, вийти зі стеку, очікування, зупинки, переривання активізації чи скидання, десяткової корекції. |
|
Рис.3.1. Класифікація команд типової систеим команд
Мова асемблера
Систему команд мікропроцесора описують на мові асемблера.
Мова асемблера — це машинно-орієнтований засіб програмування. Програма на мові асемблера називається початковою. Асемблер транслює вихідну програму в символах в двійкові машинні коди. Така програма називається об'єктною, її можна завантажувати в пам'ять для виконання.
Програма готується у вигляді послідовності пропозицій, званих операторами мови асемблера. Кожен оператор записується в одному окремому рядку і після трансляції породжує одну машинну команду. Рядок оператора має чотири поля, в яких записують мітку, мнемокод (код операції), операнд і коментарі. На практиці поля оператора вирівнюються програмістом.
Всі оператори записуються за допомогою символів коди ASCII.
Мітки відділяються від поля мнемоніки двокрапкою:
МІТКА: MOVA, В; Команда пересилки
Мітки починаються з букви і відрізняються першими п'ятьма символами. Не можна записувати однакову мітку в декількох операторах, проте в одному операторові можна записати зразу декілька різних міток. Мітками позначають лише тих операторів, на яких є заслання з інших операторів програми. При трансляції кожній мітці привласнюється 16-розрядна адреса першого байта поміченої команди:
JMP МІТКА; Команда переходу
МО V В, С;
… … … …
МІТКА: INR А; Помічений оператор
У полі операції записують мнемоніку команди. Мнемоніка відділяється від поля операндів як мінімум одним пропуском.
У полі операндів розміщують один або два операнди. У командах без операндів це поле вільне. Як операнди використовують імена регістрів і регістрових пар, мітки або безпосередні дані. Двійкові дані закінчуються символом В, вісімкові — Q, десяткові — D (може опускатися), шістнадцятиричні — Н; якщо в шістнадцятиричному числі перший знак — буква, то перед нею пишуть цифру 0. Приклад завантаження даних:
МІТКА: MVIA, ОЕН; шістнадцятиричних
MVIВ, 15; десяткових
MVI С, 15 Q; вісімкових
MVIL, 111В; двійкових
У операнд можна записувати один або два символи коди ASCII, які беруться в лапки. Після трансляції запису символів підставляються їх двійкові коди.
Значення операндів можна задавати виразами, які обчислюються під час трансляції:
МІТКА: MVI В, (30+40)/2
МОV 7/2+4, 04Н
У полі коментарів, яке відокремлюють від попереднього поля крапкою з комою, розміщують опис призначення оператора. У мові асемблера використовують директиви, які призначені для передачі інформації, використовуваної при трансляції.
До основних директив відносяться:
• управління трансляцією ORG, END;
• визначення даних і резервування в пам'яті області даних DB, DW, DS.
Директива ORG (с початку) використовується для установки початкової адреси програми:
МІТКА: ORG 0800Н
При трансляції асемблер привласнює своєму лічильнику адреси значення 0800Я; за цією адресою в програмі буде розташований перший байт команди або даних. Якщо на початку програми директива ORG відсутня, то лічильнику адреси привласнюється нульове значення. Якщо в директиви ORG є мітка, то їй привласнюється адреса елементу пам'яті, наступної за останнім байтом об'єктної коди попереднього оператора.
Директива END (кінець) записується в останньому рядку вихідної програми і повідомляє асемблер про її завершення:
МІТКА: END
Якщо в директиві END записана мітка, то їй привласнюється адреса байта, наступного за останнім байтом об'єктної коди попереднього оператора.
Директиву DB (визначення байтів) використовують для запису в пам'ять масиву однобайтових даних:
МІТКА: DB СПИСОК
Операнд СПИСОК може бути послідовністю байтів даних, відокремлених один від одного комами, або символів, узятих в лапки. Якщо в директиві DB використовується мітка, то їй привласнюється адреса першого байта масиву даних. Використання міток в директиві DB дозволяє організувати символічну адресацію даних:
МІТКА1: DB 15, 1, 24, 50; Запам'ятати чотири байти даних
МІТКА2: DB " Рядок "; Запам'ятати п'ять символів
У першій директиві число 15 запам'ятовується за адресою МЕТКА1, число 1 — за адресою МІТКА 1+1 і т. д..
Директиву DW (визначення слова) використовують для запису в пам'ять масиву двобайтових даних:
МІТКА: DW СПИСОК
Операнд СПИСОК задає послідовність 16-розрядних даних. При виконанні директиви DW молодший байт першого даного запам'ятовується за поточною адресою (адреса мітки), а старший байт — за адресою на одиницю більше. Потім ці дії виконуються для наступних даних:
DATA: DW 1100Н, 0222Н
В даному прикладі число 1100Н запам'ятовується за адресою DATA, Data+l, а число 0222Н — за адресою Data+2, Data+3. Початкова адреса може задавати директива ORG.
Директиву DS (визначення пам'яті) використовують для резервування області пам'яті для даних:
МІТКА: DS ЧИСЛО
Значення операнда ЧИСЛО визначає кількість елементів (байтів) пам'яті, що резервуються для запам'ятовування даних. Вміст цієї області не визначається. Якщо в директиві DS використовують мітку, то їй привласнюють адресу першого байта резервованої області пам'яті:
TABLE: DS 64; Резервують 64 байти даних
