6.4. Способи адресації в мікропроцесорній системі
При написанні команд дуже важливо вірно вибрати спосіб адресації даних, який вимагав би найменший об’єм пам”яті для розміщення даних, та найменший час виконання команди. Використовуються 5 засобів адресації : прямий, регістровий, непрямий, безпосередній та неявний.
1. При прямій адресації адреса місця, де зберігаються дані, розміщують за кодом операції. Цією адресою може бути № порту пристрою вводу-виводу ( команда 2-во байтова) ; чи № комірки пам”яті ( команда 3-х байтова). Пряма адресація проста, але неекономічна через досить довгі командні слова, що збільшує об’єм пам”яті та час виконання.
Команда порт вводу – виводу
Ст.. байт Код операції → дані
Мол. Байт № порту
Команда Пам”ять
Код операції
Молодша півадреса → Адреса Дані
Старша півадреса.
Н., команда JMP 1000H виконує перехід по адресі 1000Н, задаючи значення адреси пам’яті, а команда OUT 06Н – виводить вмістиме акумулятора в порт за номером 06Н.
2. При регістровій адресації за кодом операції вказують код регістра, де зберігаються дані. В цих командах акумулятор вже зберігає другий операнд бінарних операцій. Код займає 3 розряди для кожного регістра, тому команди роблять однобайтовими і вони виконуються досить швидко. Н., СМР Е – проводить порівняння вмістимого регістра Е з акумулятором. Більшість команд, які використовують регістрову адресацію обробляють байт даних. Але деякі використовують 16-ти бітове значення пари регістрів. Так команда РСНL виконує обмін між вмістимим лічильника команд і вмістимим пари регістрів Н.
3.При непрямій адресації (косвенная адресация) вказують код регістрів, в яких знаходиться адреса комірки пам”яті, яка зберігає дані. Такий спосіб дозволяє компактно адресувати простір пам”яті за допомогою коротких однобайтових команд і використовується часто. Тобто, при цьому способі використовуються дві адреси. Перша адреса надається в команді і являє собою адресу пари регістрів. Але пара регістрів вміщують в собі не операнд, як при явній адресації, а другу адресу, яка є адресою байта даних в пам”яті.
Наприклад, команда MOV M, C пересилає вмістиме регістру С в байт пам’яті за адресою, яка знаходиться в парі регістрів Н (регістри Н та L).
Команда LDAX B – загружає акумулятор байтом даних із пам’яті , адреса якої знаходиться в парі регістрів В (об’єднані регістри В та С).
Команди, які використовують не окремі регістри, а їх пари, при роботі із 16-ти бітними словами, кодують їх так: В=(В,С); D=(D,Е); Н=(Н,L); PSW= (A,F}
4. При безпосередній адресації дані у вигляді 8-ми розрядного двійкового числа безпосередньо розміщуються в другому байті команди. А якщо число має більшу довжину, то і в 2-гому та 3-тьому байтах. При цьому молодші розряди заносяться до 2-го байту, а старші – до 3-го.
Код операції (1-й байт) → Код операції
Дані молодші розряди даних
старші розряди даних
Тобто, при безпосередній адресації операд є частиною виконуваної операції. При її виконанні МП виймає із пам”яті (ОЗП чи ПЗП) перший байт команди , а потім вирішує, чи потрібно виймати наступний байт (2-й чи 3-й). Якщо необхідно, то безпосередній операнд зчитується із одного із внутрішніх регістрів РЗП, і в цьому випадку звертання до пам’яті відсутнє. Всі команди з безпосередньою адресацією , крім команд MVI та LXI, грунтуються на тому, що другий операнд , який використовується в команді, вже знаходиться в акумуляторі і адресується неявно.
В той же час , якщо необхідно загрузити початкове значення покажчика стеку за допомогою команди LXI SP, то це виконується так:
LXP SP, 2500
В цьому випадку ПС загружається значенням 2500 (10). Код 2500(10) є операндом, який адресується безпосередньо.
5. При неявній адресації один із операндів повинен знаходитись у внутрішньому регістрі МП, найчастіше – це акумулятор А. В цьому випадку, адреса одного чи обох операндів задається неявно в самому коді операції. Операція може виконуватись, н., тільки над тим, що вміщується а акумуляторі, і задається самим кодом команди, тому немає необхідності додатково повідомляти його адресу. Н., команда DAA неявно задає акуму-лятор як операнд (провести десяткову коррекцію результату додавання).
6. Є ще змішана адресація. Її використовують ряд команд. Н., CALL – команда виклику підпрограми об’єднує пряму адресацію та непряму регістрову. Пряма адресація в цій команді показує адресу підпрограми, яка викликається, а непряма регістрова адресація через покажчик стеку надає адресу ОЗП, по якому в пам’ять записується значення лічильника команд (фіксується його значення на момент початку виконання підпрограми у пам’яті стеку).
- Київ нухт 2011
- 1. Загальні відомості про мікропроцесор та мікропроцесорну систему
- 1.1. Мікропроцесор. Загальні положення та визначення.
- 1.2. Архітектура мікропроцесора
- 1.3. Загальна структура мікропроцесора та його функціонування
- 1.4. Поняття про мікропроцесорну систему (мпс)
- 1.5. Поняття мікропроцесорного контролера
- 2. Загальні відомості пронадання та опрацювання інформації в мікропроцесонній техніці
- 2.1. Поняття інформації та дві форми її надання
- 2.2. Фізична суть цифрової інформації та елементи її реалізації
- 3. Основи алгебри логіки
- 3.1. Загальні положення
- 3.2. Опис та задання логічних функцій.
- 3.3. Основні логічні функції алгебри логіки
- 4. Способи надання інформації в мікропроцесорі
- 4.1. Поняття систем числення в мікропроцесорній техніці
- 4.2. Дівйкова система числення та основи переведення чисел між системами числення
- 4.2.1. Перетворення двійкових чисел в десяткові.
- 4.2.2. Перетворення десяткових чисел в двійкові
- 4.3. Вісімкова та шістнадцяткова системи числення
- 5. Структурні елементи мікропроцесора
- 5.1. Поняття машинного слова, регістрів
- 5.2. Формати надання чисел в мікропроцесорах
- 5.3. Двійкова арифметика в мікропроцесорі.
- 5.4. Двійково-десяткова арифметика.
- 5.4.1 Додавання двійково-десяткових чисел без знаку.
- 5.4.2 Додавання двійково-десяткових чисел із знаком.
- 5.5. Регістр стану (psw) мп та його призначення
- 5.6. Поняття шин (bus) мікропроцесора
- 5.7. Арифметично – логічний пристрій мікропроцесора
- 5.8. Пристій вводу – виводу (пвв).
- In 07н; ввести в акумулятор дані із порту 7;
- Поняття шинних драйверів.
- 5.9. Поняття інтерфейсу
- 5.10. Передавання інформації у послідовному коді.
- 5.11. Память мікропроцесорів та опереції з нею
- 5.12. Адресний простір мікропроцесора
- 5.13. Стек та його використовування
- 6. Мови програмування мпс
- 6.1. Рівні мов прграмування мп.
- 6.1.1. Базова мова мікропроцесора.
- 6.1.2. Мова “ асемблер” (другого рівня).
- 6.1.3. Мови третього рівня.
- 6.2. Основні правила запису програм на мові асемблера
- 6.3 Програмне забезпечення мікропроцесорнихсистем та його види
- 6.4. Способи адресації в мікропроцесорній системі
- 6.5. Формати команд мікропроцесорів
- Варіанти однобайтних команд:
- 6.6. Робочий цикл виконання програми мп
- 7. Однокристальний мікропроцесорний контролер кр1816ве51…….
- 7.1. Номеклатура та порівняльні характеристики мп
- 7.2. Структурна схема мікроконтролера кр1816ве51 та призначення складових
- Призначення виводів мп кр1816ве51
- Призначення виводів мп кр1816ве51
- 7.3. Функціонування мп кр1816ве51
- 7.4. Система команд мп кр1816ве51
- In port- те, що знаходиться в порту вводу заноситься в акумулятор а
- 8. Приклади програмування на асемблері кр1816ве51
- 8.1 Форомалізований підхід до розробки прикладної програми
- 8.2. Підрахунок імпульсів
- 8.3. Функції часової витримки
- 8.4. Функції вимірювання часових інтервалів
- 8.5. Перетворення кодів між системами числення
- 8.6. Аналого-цифрове перетворення
- 8.7 Приклад програмування технічної задачі
- 8.7.1. Постановка задачі
- 8.7.2. Аналіз задачі.
- 8.7.3. Розробка схеми пристрою та інтерфейсу.
- 8.7.4. Інженерна інтерпретація задачі
- 8.7.5. Розробка блок –схеми алгоритму
- 8.7.6 Розробка прикладної програми
- Програма sezam
- Контрольні запитання з курсу
- Література
- 1..Технічне та програмне забезпечення плк “ломіконт” Функціональні можливості плк “Ломіконт”.
- Технічні характеристики Ломіконта
- 2. Фізична сруктура контролера та його склад
- На рис 1.1 приведена фізична структура л-110 з основними модулями.
- Програмування плк “ломіконт”
- ПрК задає логіку управління конкретним технологічним об”єктом.
- Порядок виконання програми контролером:
- 05 Если умова а
- 07 Если умова в
- 11 Если умова с
- 00 Если в дв015
- 01 Тогда о кс102
- 02 Иначе в кс116
- 14 Тогда алг 031 (потім виконати алгоритм 031)
- 3. Приклад програмування на технологічній мові «Мікрол»
- Програмування алгоритму
- Безпоседньо програма
- 11 Тогда о кс100 - 26 тогда тс 1.0.0
- Бібліотека алгоритмів «ломіконту»