Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Команди логічних операцій




Група команд логічних операцій об’єднує команди логічних операцій І, АБО і ВИКЛЮЧАЮЧЕ АБО, а також команди маніпулювання з акумулятором: інверсія, обнуління, зсуви через перенос, циклічні зсуви і обміну тетрадами (всього 25 команд розміщених в таблиці 8.16).

На відміну від арифметичних функцій команди логічних функцій можуть здійснюватись без участі акумулятора, а їх результат може бути сформований у будь-якій комірці внутрішнього ОЗП, пряма адреса якої вказується в команді. Це важливий інструмент для маскування операндів при роботі з портами.

Приклади використання команд логічних функцій подано нижче.

ANL P2,#10111010 B ; Обнуління бітів 0,2,6 порту 2
ORL P1,#00001111 B ; Установити біти 0-3 порту 1
ANL PSW,#11100111 B ; Вибір нульового банку (обнулити біти RS1 i;RS0)
XRL P1,A ; Проінвертувати біти порту Р1, що відповідають ; одиничним бітам акумулятора
XRL A,#OF H ; Проінвертувати біти 0-3 акумулятора
XRL P0,#11100000 B ; Проінвертувати біти 7,6,5 порту Р0

МК 51 має чотири команди зсувів, дія яких показується на рисунку 8.10.

 

Рисунок 8.10- Дія команди зсувів: а)через перенос - RLC, RRC;

б) циклічний зсув -RL, RR.

 

Таблиця 8.16- Група команд логічних операцій

Назва команди Мнемокод КОП Т В Ц Операція
Логічне І акумулятора і регістра ANL A, Rn 01011iii       (A) (A) (Rn)
Логічне І акумулятора і прямоадресованого байта ANL A, ad         (A) (A) (ad)
Логічне І акумулятора і байта з РПД ANL A,@Ri 0101011i       (A) (A) ((Ri))
Логічне І акумулятора і константи ANL A, #d         (A) (A) #d
Логічне І прямоадресованого байта і акумулятора ANL ad, A         (ad) (ad) (A)
Логічне І прямоадресованого байта і константи ANL ad, #d         (ad) (ad) #d
Логічне АБО акумулятора і регістра ORL A, Rn 01001iii       (A) (A) (Rn)
Логічне АБО акумулятора і прямоадресованого байта ORL A, ad         (A) (A) (ad)
Логічне АБО акумулятора і байта з РПД ORL A,@Ri 0100011i       (A) (A) ((Ri))
Логічне АБО акумулятора і константи ORL A,#d         (A) (A) #d
Логічне АБО прямоадресованого байта і акумулятора ORL ad, A         (ad) (ad) (A)
Логічне АБО прямоадресованого байта і константи ORL ad, #d         (ad) (ad) #d
Виключаюче АБО акумулятора і регістра XRL A, Rn 01101iii       (A) (A) (Rn)
Виключаюче АБО акумулятора і прямоадресованого байта XRL A, ad         (A) (A) (ad)
Виключаюче АБО акумулятора і байта з РПД XRL A,@Ri 0110011i       (A) (A) ((Ri))
Виключаюче АБО акумулятора і константи XRL A, #d         (A) (A) #d
Виключаюче АБО прямоадресованого байта і акумулятора XRL ad, A         (ad) (ad) (A)
Виключаюче АБО прямоадресованого байта і константи XRL ad, #d         (ad) (ad) #d
Обнуління акумулятора CLR A         (A) 0
Інверсія акумулятора CPL A         (A) (A)
Зсув акумулятора вліво циклічний RL A         (An+1) (An) n=0 6 (A0) (A7)
Зсув акумулятора вліво через перенос RLC A         (An+1) (An) n=0 6 (A0) (C), (C) (A7)
Зсув акумулятора вправо циклічний RR A         (An) (An+1) n=0 6 (A7) (A0)
Зсув акумулятора вправо через перенос RRC A         (An) (An+1) n=0 6 (A7) (C), (C) (A0)
Обмін місцями тетрад в акумуляторі SWAP A         (A0-3) (A4-7)  

Зрозуміло, що команди RLC i RRC діють на індикатор переносу С.

Команди зсувів (RLC i RRC) особливо корисні при множенні і діленні числа, що знаходиться в акумуляторі, на числа кратні 2, оскільки процедура реалізується через зсув вмісту акумулятора відповідно вправо або вліво на необхідну кількість розрядів. Очевидно, що біт С перед зсувом щоразу потрібно обнулювати. Обидва типи зсувів можна застосовувати для тестування окремих бітів акумулятора.

Команда SWAP забезпечує обмін тетрадами в акумуляторі шляхом циклічного зсуву вправо 4 рази. Дана команда не діє на індикатор С.

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...