Результати виконання логічних операцій
оr (или) | and (и) | eor (исключ. или) | ||||||
Вход | Выход | Вход | Выход | Вход | Выход | |||
А | В | Q | A | B | Q | А | В | Q |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 |
1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
Вищезазначені команди використовуються для виконання операцій порозрядного маскування: or – для встановлення одиниць у заданих розрядах, and – для встановлення нулів, еor – для знаходження співпадаючих значень бітів першого операнду з маскою. Команди змінюють флагу нуля Z, знака N та переповнення V. Приклади порозрядних логічних операцій, що іллюструють використання механізму маскування, приведені в Таб. 1.2.
Таблиця 1.2 Приклади порозрядних логічних операцій
Пример поразрядного маскирования or | Пример поразрядного маскирования and | Пример поразрядного маскирования eor | |||
Rd | хххххххх | Rd | хххххххх | Rd | 10100110 |
Rs | 00010010 | Rs | 10110101 | Rs | 00010010 |
Rd=Rd or Rs | ххх1хх1х | Rd=Rd and Rs | х0хх0х0х | Rd=Rd eor Rs | 10110100 |
Команда порозрядного інвертування:
com R логічне заперечення; дія: R = 0b11111111 – R,
виконує зміну значень двійкових розрядів операнду (регістр загального призначення) на протилежні.
Приклад:
com R3 дія: R3 = 0b11111111 – R3.
Команди для роботи з бітами. Доповнюють сукупність логічних операцій команди скидання, встановлення та перевірки значень окремих бітів.
Команди скидання cbi P, n та встановлення sbi P, n бітів призначені для присвоювання значень 0 та 1 окремим бітам портів введення/виведення відповідно. Першим операндом в цих командах є адреса порту введення/виведення, а другим – номер біту (від 0 до 7).
Приклади:
cbi 0x17, 5 дія: 0x175 = 0;
sbi 0x40, 1 дія: 0x401 = 1.
Команда логічного зсуву lsl R виконує зсув ліворуч на одну позицію усіх бітів операнда, а в молодший розряд додає нуль. Старший біт операнду поступає у прапор переносу С. У якості операнда можуть використовуватись тільки регістри загального призначення. Команда lsr R виконує зсув праворуч на одну позицію усіх бітів операнда, а в старший розряд додає нуль. Молодший біт операнду поступає у прапор переносу С. Приклади використання команд логічного зсуву:
lsl R17 логічний зсув ліворуч усіх розрядів у R17;
lsr R9 логічний зсув праворуч усіх розрядів у R9.
Змінити місцями молодшу та старшу тетради байту, завантаженого до регістру загального призначення, можливо за допомогою команди swap R. Наступний фрагмент ілюструє дію команди swap:
ldi R19, 0b01001101 завантаження константу 0b01001101 до регістру R19;
swap R19 в результаті виконання команди swap у регістрі R19 буде записане значення 0b11010100.
Доповнюють перелік команд для роботи з бітами інструкції для скидання/встановлення значень прапорових розрядів у регістрі статусу SREG.
Команди порівняння, умовного та безумовного переходів. Команда порівняння cp Rd, Rs – здійснює дію Rd–Rs та встановлює прапори нуля Z, від’ємного результату N, переповнення V, переносу С та додаткового переносу H. Результат не зберігається за адресою першого операнду, а лише формуються прапори. Операндами можуть бути лише регістри загального призначення.
Команди умовного переходу викликаються одразу після команд порівняння (або других інструкцій, що викликають зміну бітів регістру стану SREG) та на підставі аналізу прапорів здійснюється перехід за вказаною адресою (до мітки) у пам’яті команд.
Найбільш розповсюдженими серед команд цієї групи є:
breq M перехід до М, якщо дорівнює;
brne M перехід до М, якщо не дорівнює;
brlo M перехід до М, якщо менше;
brsh M перехід до М, якщо більше або дорівнює.
Приклад спільного використання команд порівняння та умовного переходу:
cp R1, R5 порівняння значеннь у регістрах R1 и R5;
breq lbl1 виконання переходу на мітку lbl1, якщо значення регістрах R1 та R5 однакові (R1–R5=0).
Команда rjmp М здійснює безумовний перехід за вказаною 8-разрядною міткою у пам’яті команд. Приклад:
rjmp lbl2 безумовний перехід до мітки lbl2.
Команда jmp М здійснює безумовний перехід за вказаною адресою (до мітки, label) у пам’яті команд. Приклад:
rjmp lbl3 безумовний перехід до мітки lbl3.[ii]
- 7.091501"Комп’ютерні системи та мережі".
- Програмна модель мікроконтролера Atmel avr aTmega 2561.
- Структура регістру станів
- Система команд мікроконтролера avr aTmega2561.
- Результати виконання логічних операцій
- Синтаксис та основні оператори мови с.
- Зміст, правила оформлення звіту, організація і проведення занять
- Лабораторні роботи Лабораторна робота 1
- Тема 1: Опис інтерфейсу компілятора мови с CodeVision avr
- Тема 2: Управління блоком світлодіодів
- Порядок виконання завдання:
- Тема 3: Вивчення принципів організації програмного опитування клавіатури
- Тема 4: Вивчення принципів роботи ацп мікроконтролеру на прикладі обробки сигналів з термодатчика
- Лабораторна робота 5 Тема 5: Реалізація виведення даних на жк-дисплей та обмін інформацією між пеом та мікроконтролером через послідовний порт rs-232
- Список рекомендованої літератури