Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Arkhitektura_mikrokontroleriv_MCS-51.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
101.28 Кб
Скачать

Арифметичні команди

У наборі команд мікроконтролера є наступні арифметичні операції:

  • додавання ADD,

  • додавання з урахуванням прапора переносу ADDC,

  • віднімання з займом SUBB,

  • інкрементуровання (збільшення на 1) INC,

  • декрементування (зменшення на 1) DEC,

  • десяткова корекція DA,

  • множення MUL

  • ділення DIV.

Дії проводяться над цілими числами без знака.

При операції множення вміст акумулятора A множиться на вміст регістра B, і результат розміщується таким чином: молодший байт у регістрі B, старший - у регістрі А.

У разі виконання операції ділення ціле від ділення поміщається в акумулятор A, залишок - в регістр В.

Логічні команди з байтовими змінними

Система команд розглянутого мікроконтролера дозволяє реалізувати логічні операції

  • І ( ANL),

  • АБО ( ORL),

  • ВИКЛЮЧАЮЧЕ АБО ( XRL).

Логічні операції виконуються над акумулятором або безпосередньо над портами введення / виводу.

Існують логічні операції, які виконуються тільки на акумуляторі:

  • скидання всіх восьми розрядів A (CLR A);

  • інвертування всіх восьми розрядів A (CPL A);

  • циклічний зсув вліво і вправо без урахування прапора переносу (RR A; RL A);

  • циклічний зсув вліво і вправо з урахуванням прапора переносу (RRC A; RLC A);

  • обмін місцями старшої та молодшої тетрад всередині акумулятора (SWAP A).

Команди пересилання даних.

Як було розглянуто раніше, арифметичні і логічні команди можуть бути виконані лише над вмістом регістра акумулятора, тому виключно важливе значення в системі команд набувають команди пересилання даних. За допомогою цих команд можна скопіювати вміст будь-якої комірки пам'яті в регістр-акумулятор або навпаки скопіювати вміст акумулятора в будь-яку комірку пам'яті. Так, як в мікроконтролері присутній три незалежні області пам'яті, то для звернення до них введені різні команди:

  • копіювання даних у внутрішньому ОЗП: MOV ;

  • обмін даними акумулятора з внутрішнім ОЗП: XCH , XCHD

  • копіювання з зовнішньої пам'яті даних: MOVX

  • копіювання даних з пам'яті програм: MOVC

Приклади використання команд пересилання даних:

Будь-яка комірка 256 - байтового блоку внутрішнього ОЗП даних може бути обрана з використанням побічно-реєстрової адресації через регістри покажчики R0 і R1 (обраного банку робочих регістрів):

MOV A, @ R0 ;Скопіювати число з комірки пам'яті з адресою, що зберігається в R0, в акумулятор

MOV @ R1, A ; Скопіювати число з акумулятора, в комірку пам'яті з адресою, що зберігається в R1

Команди пересилання з прямою адресацією між комірками пам'яті дозволяють заносити вміст порту в комірку внутрішнього ОЗП або обмінюватися вмістом комірок внутрішнього ОЗП між собою без використання акумулятора:

MOV 15, 25 ; Скопіювати вміст 25-ої комірки в 15-у комірку

Таблиці символів (кодів), записані в ПЗП програми можуть бути скопійовані в акумулятор за допомогою команд передачі даних з непрямою адресацією :

MOVC A, @ A + DPTR ; Скопіювати символ в акумулятор

Комірка адресного простору 64 Кбайт зовнішнього ОЗП також може бути вибрана з використанням побічно-реєстрової адресації через регістр покажчик даних DPTR:

MOVX A, @ DPTR ; Скопіювати число з зовнішньої комірки пам'яті з адресою, що зберігається в DPTR, в акумулятор

Вміст акумулятора може бути обміняно з вмістом робочих регістрів обраного банку:

XCH A, R0.

Крім того, будь-який біт з прямою адресацією може бути скопійований в біт перенесення і навпаки:

MOV C, AdrBit

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]