Команды логических операций микроконтроллера 8051.
В этой группе 25 команд, их краткое описание приведено в таблице. Нетрудно видеть, что эти команды позволяют выполнять операции над байтами: логическое И (/\), логическое ИЛИ (\/), исключающее ИЛИ ((+)), инверсию (NOT), сброс в нулевое значение и сдвиг. В таблице также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).
Название команды | Мнемокод | КОП | Т | Б | Ц | Операция |
Логическое И аккумулятора и регистра | ANL A, Rn | 01011rrr | (A) ¬ (A) AND (Rn) | |||
Логическое И аккумулятора и прямоадресуемого байта | ANL A, ad | (A) ¬ (A) AND (ad) | ||||
Логическое И аккумулятора и байта из РПД | ANL A, @Ri | 0101011i | (A) ¬ (A) AND ((Ri)) | |||
Логическое И аккумулятора и константы | ANL A, #d | (A) ¬ (A) AND #d | ||||
Логическое И прямоадресуемого байта и аккумулятора | ANL ad, A | (ad) ¬ (ad) AND (A) | ||||
Логическое И прямоадресуемого байта и константы | ANL ad, #d | (ad) ¬ (ad) AND #d | ||||
Логическое ИЛИ аккумулятора и регистра | ORL A, Rn | 01001rrr | (A) ¬ (A) OR (Rn) | |||
Логическое ИЛИ аккумулятора и прямоадресуемого байта | ORL A, ad | (A) ¬ (A) OR (ad) | ||||
Логическое ИЛИ аккумулятора и байта из РПД | ORL A, @Ri | 0100011i | (A) ¬ (A) OR ((Ri)) | |||
Логическое ИЛИ аккумулятора и константы | ORL A, #d | (A) ¬ (A) OR #d | ||||
Логическое ИЛИ прямоадресуемого байта и аккумулятора | ORL ad, A | (ad) ¬ (ad) OR (A) | ||||
Логическое ИЛИ прямоадресуемого байта и константы | ORL ad, #d | (ad) ¬ (ad) OR #d | ||||
Исключающее ИЛИ аккумулятора и регистра | XRL A, Rn | 01101rrr | (A) ¬ (A) XOR (Rn) | |||
Исключающее ИЛИ аккумулятора и прямоадресуемого байта | XRL A, ad | (A) ¬ (A) XOR (ad) | ||||
Исключающее ИЛИ аккумулятора и байта из РПД | XRL A, @Ri | 0110011i | (A) ¬ (A) XOR ((Ri)) | |||
Исключающее ИЛИ аккумулятора и константы | XRL A, #d | (A) ¬ (A) XOR #d | ||||
Исключающее ИЛИ прямоадресуемого байта и аккумулятора | XRL ad, A | (ad) ¬ (ad) XOR (A) | ||||
Исключающее ИЛИ прямоадресуемого байта и константы | XRL ad, #d | (ad) ¬ (ad) XOR #d | ||||
Сброс аккумулятора | CLR A | (A) ¬ 0 | ||||
Инверсия аккумулятора | CPL A | (A) ¬ NOT(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) |
Таблица 2.4 Логические операции
|
|
Группа состоит из 12 команд, краткое описание которых приведено в таблице. Эти команды позволяют выполнять операции над отдельными битами: сброс, установку, инверсию бита, а также логические И (/\) и ИЛИ (\/). В качестве "логического" аккумулятора, участвующего во всех операциях с двумя операндами, выступает признак переноса С (разряд D7 PSW), в качестве операндов могут использоваться 128 бит из резидентной памяти данных и регистры специальных функций, допускающие адресацию отдельных бит.
|
|
В таблице также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).
Название команды | Мнемокод | КОП | Т | Б | Ц | Операция |
Сброс переноса | CLR С | (C) ¬ 0 | ||||
Сброс бита | CLR bit | (b) ¬ 0 | ||||
Установка переноса | SETB С | (C) ¬ 1 | ||||
Установка бита | SETB bit | (b) ¬ 1 | ||||
Инверсия переноса | CPL С | (C) ¬ NOT(C) | ||||
Инверсия бита | CPL bit | (b) ¬ NOT(b) | ||||
Логическое И бита и переноса | ANL С, bit | (C) ¬ (C) AND (b) | ||||
Логическое И инверсии бита и переноса | ANL С, /bit | (C) ¬ (C) AND (NOT(b)) | ||||
Логическое ИЛИ бита и переноса | ORL С, bit | (C) ¬ (C) OR (b) | ||||
Логическое ИЛИ инверсии бита и переноса | ORL С, /bit | (C) ¬ (C) OR (NOT(b)) | ||||
Пересылка бита в перенос | MOV С, bit | (C) ¬ (b) | ||||
Пересылка переноса в бит | MOV bit, С | (b) ¬ (C) |
Таблица 2.5 Операции с битами