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

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




 

До цієї групи відноситься 25 команд, короткий опис яких наведено в табл. 4. Ці команди дозволяють виконувати операції над байтами: логічне множення І, логічне додавання АБО, виключаючи АБО, інверсію (НЕ), скидання в нуль та зсув. В таблиці також вказано тип команди (Т) у відповідності з табл. 1, її довжина в байтах (Б) та час виконання в машинних циклах (Ц).

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

Назва команди Мнемокод КОП Т Б Ц Операція
Логічне множення вмістимого аккумулятора з регістром Rn, (n=0÷7) ANL A, Rn 01011rrr       (A) (A) AND (Rn)
Логічне множення вмістимого аккумулятора з адресом, що прямо адресується ANL A, ad         (A) (A) AND (ad)
Логічне множення вмістимого аккумулятора з байтом з РПД @Ri, (i=0,1) 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
Логічне додавання вмістимого аккумулятора з регістром Rn, (n=0÷7) ORL A, Rn 01001rrr       (A) (A) OR (Rn)
Логічне додавання вмістимого аккумулятора з адресом, що прямо адресується ORL A, ad         (A) (A) OR (ad)
Логічне додавання вмістимого аккумулятора з байтом з РПД @Ri, (i=0,1) 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
Логічне виключаюче АБО вмістимого аккумулятора з регістром Rn, (n=0÷7) XRL A, Rn 01101rrr       (A) (A) XOR (Rn)
Логічне виключаюче АБО вмістимого аккумулятора з адресом, що прямо адресується XRL A, ad         (A) (A) XOR (ad)
Логічне виключаюче АБО вмістимого аккумулятора з байтом з РПД @Ri, (i=0,1) 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)

 

53) ANL A, Rn

Команда “логічне множення І” виконує операцію логічне “І” над бітами змінних, вказаних в команді, і заносить результат в байт-приймач. Ця операція не впливає на стан прапорців.

(A)=FEH, (R2)=C5H,

ANL A, R2,

(A) FEH 11111110B

(R2) C5H 11000101B

A & R2 C4H 11000100B

(A)=C4H, (R2)=C5.

 

54) ANL A, ad

(A)=A3H, (PSW)=86H

ANL A, PSW

(A) A3H 10100011B

(PSW) 86B 10000110B

A & PSW 82H 10000010B

(A)=82H, (PSW)=86H.

 

55) ANL A, @Ri

(A)=BCH, (35H)=47H (R0)=35H

ANL A, @R0

(A) BCH 10111100B

((R0)) 47H 01000111B

A & @R0 04H 00000100B

(A)=04H, (35H)=47H.

 

56) ANL A, #d

(A)=36H

ANL A, #0DDH

(A) 36H 00110110B

#d DDH 11011101B

A & #d 14H 00010100B

(A)=14H.

 

57) ANL ad, A

(A)=55H, (P2)=AAH

ANL P2, A

(P2) AAH 10101010B

(A) 55H 01010101B

P2 & A 00H 00000000B

(P2)=00H, (A)=55H.

 

58) ANL ad, #d

(P1)=FFH

ANL P1, #73H

(P1) FFH 11111111B

#d 73H 01110011B

P1 & #d 73H 01110011B

(P1)=73H.

 

59) ORL A, Rn

Команда “логічне додавання АБО” виконує операцію логічне “АБО” над бітами змінних, вказаних в команді, і заносить результат в байт-приймач. Ця операція не впливає на стан прапорців.

(A)=15H, (R5)=C6H

ORL A, R5

(A) 15H 00010101B

(R5) C6H 11000101B

A OR R5 D5H 11010101B

(A)=D5H, (R5)=C5H.

 

60) ORL A, ad

(A)=84H, (PSW)=C2H

ORL A, PSW

(A) 84H 10000100B

(PSW) C2H 11000010B

A OR PSW C6H 11000110B

(A)=C6H, (PSW)=C2H.

 

61) ORL A, @Ri

(A)=52H, (R0)=6DH, (6DH)=49H

(A) 52H 01010010B

((R)) 49H 01001001B

A OR @R0 5BH 01011011B

(A)=5BH, (6DH0=49H.

 

62) ORL A, #d

(A)=F0H

ORL A, 0AH

(A) F0H 11110000B

#d 0AH 00001010B

A OR #d 14H 11111010B

(A)=FAH.

 

63) ORL ad, A

(A)=34H, (IP)=23H

ORL IP, A

(IP) 23H 00100011B

(A) 34H 00110100B

IP ORL A 00H 00110111B

(IP)=37H, (A)=34H.

 

64) ORL ad, #d

(P1)=00H

ORL P1, #0C4H

(P1) 00H 00000000B

#d C4H 11000100B

P1 OR #d C4H 11000100B

(P1)=C4H.

 

65) XRL A, Rn

Команда “логічне виключаюче АБО” виконує операцію “виключаюче АБО” над бітами змінних, вказаних в команді, результат заноситься в байт-приймач. На прапорці ця команда не впливає.

(A)=C3H, (R6)=AAH

XRL A, Rn

(A) C3H 11000011B

(R6) AAH 10101010B

A XRL R6 69H 01101001B

(A)=69H, (R6)=AAH.

 

66) XRL A, ad

(A)=A9H, (P1)=A6H

XRL A, P1

(A) 0FH 00001111B

(P1) A6H 10100110B

A XRL P1 A9H 10101001B

(A)=A9H, (P1)=A6H.

 

67) XRL A, @Ri

(A)=55H, (R1)=77H, (77H)=5AH

XRL A, @R1

(A) 55H 01010101B

((R1)) 5AH 01011010B

A XRL ((R1)) 0FH 00001111B

(A)=0FH, ((R1))=5AH.

 

68) XRL A, #d

(A)=0C3H

XRL A, #0F5H

(A) C3H 11000011B

F5H 11110101B

A XRL #F5H 36H 00110110B

(A)=36H

 

69) XRL ad, A

(P1)=82H

(A)=31H

XRL P1, A

(P1) 82H 10000010B

(A) 31H 00110001B

P1 XRL A B3H 10110011B

 

70) XRL ad, #d

(B)=65H

XRL B, #35H

(B) 65H 01100101B

35H 00110101B

B XRL #35H 50H 01010000B

 

71) CLR A

Команда скидає (анулює) вмістиме аккумулятора A. На прапорці команда не впливає.

(A)=7FH

CLR A

(A)=00H

 

72) CPL A

Команда виконує інверсію вмістимого аккумулятора (кожний біт акумулятора змінюється на протилежний). Біти, що містять “1” після цієї команди будуть містити “0”, та навпаки. На прапорці ця команда не впливає.

(A) 4DH 01001101B

CPL A

(A) B2H 10110010B

 

73) RL A

Команда виконує зсув вмістимого аккумулятора вліво (вісім біт аккумулятора зсуваються на один біт вліво, біт 7 передається на місце біту 0). На прапорці ця команда не впливає.

(A) 8BH 10001011B

RL A

(A) 16H 00010110B.

 

74) RLC A

Команда виконує зсув вмістимого аккумулятора вліво через прапорець переносу С (вісім біт аккумулятора та прапорець переносу зсуваються на один біт вліво, вмістиме прапорця переносу передається на місце біту 0 аккумулятора, вмістиме біту 7 передається на місце прапорця переносу). На інші прапорці ця команда не впливає.

(A) 56H 01010110B, (C)=1

RLC A

(A) ADH 10101101B, (C)=0.

 

75) RR A

Команда виконує зсув вмістимого аккумулятора вправо (вісім біт аккумулятора зсуваються на один біт вправо, біт 0 передається на місце біту 7). На прапорці ця команда не впливає.

(A) 6EH 01101110B

RR A

(A) 37H 00110111B.

 

76) RRC A

Команда виконує зсув вмістимого аккумулятора вправо через прапорець переносу С (вісім біт аккумулятора та прапорець переносу зсуваються на один біт вправо, вмістиме прапорця переносу передається на місце біту 7 аккумулятора, вмістиме біту 0 передається на місце прапорця переносу). На інші прапорці ця команда не впливає.

(A) A8H 10101000B, (C)=1

RLC A

(A) D4H 11010100B, (C)=0.

 

77) SWAP A

Команда виконує обмін тетрадами вмістимого аккумулятора (обмін між чотирма молодшими та чотирма старшими бітами аккумулятора). На прапорці ця команда не впливає.

(A) 5DH 01011101B

SWAP A

(A) D5H 11010101B.

 

Поделиться:





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





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



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