Главная » Bascom-8051, Basic, Железо » Система команд микроконтроллера 8051

0

(16)

Логические операции (продолжение)

Действие команды

Мнемоническое обозначение

КОП(16)

Описание

Кол.

циклов

C

Команды битовой обработки (команды логического процессора)

Установка переноса

SETB  C

D3

(C)←1

1

+

Установка бита

SETB bit

D2,bit

(bit)←1

1

Сброс переноса

CLR  C

C3

(C)←0

1

0

Сброс бита

CLR  bit

C2,bit

(bit)←0

1

Загрузка переноса битом

MOV C, bit

A2,bit

(C)←(bit)

1

+

Загрузка бита переносом

MOV bit, C

92,bit

(bit)←(C)

2

Логическое «И» с битом переносом

ANL C, bit

82,bit

(C)←(C)AND(bit)

2

+

ANL C, /bit

B0,bit

(C)←(C)AND NOT(bit)

2

+

Логическое «ИЛИ» с битом переносом

ORL C, bit

72,bit

(C)←(C) OR (bit)

2

+

ORL C, /bit

A0,bit

(C)←(C)OR NOT(bit)

2

+

Тестирование бита Z

JZ  rel

60,rel

Если А=0

PC←PC+2+rel

2

-

JNZ  rel

70,rel

Если А ≠0 PC←PC+2+rel

2

-

Тестирование переноса

JC  rel

40,rel

Если C=1   PC←PC+2+rel

2

JNC rel

50,rel

Если C=0   PC←PC+2+rel

2

Тестирование битов

JB bit, rel

20,bit,rel

Если bit=1   PC←PC+3+rel

2

JNB bit, rel

30,bit,rel

Если bit=0   PC←PC+3+rel

2

JBC bit, rel

10,bit,rel

Если bit=C

PC←PC+3+rel , bit=0

2

Инверсия бита

CPL bit

B2,bit

(bit)←NOT(bit)

1

Инверсия переноса

CPL  C

B3

(C)←NOT(C)

1

+

Действие команды

Мнемоническое обозначение

КОП(16)

Описание

Флаги

цикл

С

OV

AC

Команды арифметических операций

Сложение аккумулятора с РОН

ADD A, R0

28

(A)←(A)+(R0)

+

+

+

1

ADD A, R1

29

(A)←(A)+(R1)

+

+

+

1

ADD A, R2

2A

(A)←(A)+(R2)

+

+

+

1

ADD A, R3

2B

(A)←(A)+(R3)

+

+

+

1

ADD A, R4

2C

(A)←(A)+(R4)

+

+

+

1

ADD A, R5

2D

(A)←(A)+(R5)

+

+

+

1

ADD A, R6

2E

(A)←(A)+(R6)

+

+

+

1

ADD A, R7

2F

(A)←(A)+(R7)

+

+

+

1

Сложение аккумулятора с прямо

адресуемым регистром

ADD A, direct

25,da

(A)←(A)+(direct)

+

+

+

1

Сложение аккумулятора с косвенно адресуемым регистром

ADD A, @R0

26

(A)←(A)+((R0))

+

+

+

1

ADD A, @R1

27

(A)←(A)+((R1))

+

+

+

1

Сложение аккумулятора с

константой

ADD A, #data

24,dt

(A)←(A)+#data

+

+

+

1

Сложение аккумулятора с РОН с учетом переноса

ADDC A, R0

38

(A)←(A)+(C)+(R0)

+

+

+

1

ADDC A, R1

39

(A)←(A)+(C)+(R1)

+

+

+

1

ADDC A, R2

3A

(A)←(A)+(C)+(R2)

+

+

+

1

ADDC A, R3

3B

(A)←(A)+(C)+(R3)

+

+

+

1

ADDC A, R4

3C

(A)←(A)+(C)+(R4)

+

+

+

1

ADDC A, R5

3D

(A)←(A)+(C)+(R5)

+

+

+

1

ADDC A, R6

3E

(A)←(A)+(C)+(R6)

+

+

+

1

ADDC A, R7

3F

(A)←(A)+(C)+(R7)

+

+

+

1

Сложение аккумулятора с прямо

адресуемым регистром с учетом переноса

ADDC A, direct

35,da

(A)←(A)+(C)+(direct)

+

+

+

1

Сложение аккумулятора с

косвенно адресуемым регистром с учетом переноса

ADDC A, @R0

36

(A)←(A)+(C)+((R0))

+

+

+

1

ADDC A, @R1

37

(A)←(A)+(C)+((R1))

+

+

+

1

Сложение аккумулятора с

константой с учетом переноса

ADDC A, #data

34,dt

(A)←(A)+(C)+#data

+

+

+

1

Вычитание от аккумулятора C (заема) и РОН

SUBB A, R0

98

(A)←(A)-(C)-(R0)

+

+

+

1

SUBB A, R1

99

(A)←(A)-(C)-(R1)

+

+

+

1

SUBB A, R2

9A

(A)←(A)-(C)-(R2)

+

+

+

1

SUBB A, R3

9B

(A)←(A)-(C)-(R3)

+

+

+

1

SUBB A, R4

9C

(A)←(A)-(C)-(R4)

+

+

+

1

SUBB A, R5

9D

(A)←(A)-(C)-(R5)

+

+

+

1

SUBB A, R6

9E

(A)←(A)-(C)-(R6)

+

+

+

1

SUBB A, R7

9F

(A)←(A)-(C)-(R7)

+

+

+

1

Вычитание от аккумулятора C

(заема) и прямо адресуемого регистра

SUBB A, direct

95,da

(A)←(A)-(C)-(direct)

+

+

+

1

Вычитание от аккумулятора C

(заема) и косвенно адресуемого регистра

SUBB A, @R0

96

(A)←(A)-(C)-((R0))

+

+

+

1

SUBB A, @R1

97

(A)←(A)-(C)-((R1))

+

+

+

1

Вычитание от аккумулятора C

(заема) и константы

SUBB A, #data

94,dt

(A)←(A)-(C)-#data

+

+

+

1

Действие команды

Мнемоническое обозначение

КОП(16)

Описание

Флаги

Кол.циклов

С

OV

AC

Команды арифметических операций (продолжение)

Инкрементирование А

INC A

04

(A)←(A)+1

1

Инкрементирование РОН

INC R0

08

(R0)←(R0)+1

1

INC R1

09

(R1)←(R1)+1

1

INC R2

0A

(R2)←(R2)+1

1

INC R3

0B

(R3)←(R3)+1

1

INC R4

0C

(R4)←(R4)+1

1

INC R5

0D

(R5)←(R5)+1

1

INC R6

0E

(R6)←(R6)+1

1

INC R7

0F

(R7)←(R7)+1

1

Инкрементирование  прямо

адресуемого регистра

INC direct

55,da

(direct)←(direct)+1

1

Инкрементирование  косвенно адресуемого регистра

INC @R0

06

((R0))←((R0))+1

1

INC @R1

07

((R1))←((R1))+1

1

Инкрементирование DPTR

INC DPTR

A3

(DPTR)←(DPTR)+1

2

Декрементирование А

DEC  A

14

(A)←(A)-1

1

Декрементирование РОН

DEC  R0

18

(R0)←(R0)-1

1

DEC  R1

19

(R1)←(R1)-1

1

DEC  R2

1A

(R2)←(R2)-1

1

DEC  R3

1B

(R3)←(R3)-1

1

DEC  R4

1C

(R4)←(R4)-1

1

DEC  R5

1D

(R5)←(R5)-1

1

DEC  R6

1E

(R6)←(R6)-1

1

DEC  R7

1F

(R7)←(R7)-1

1

Декрементирование  прямо

адресуемого регистра

DEC direct

15,da

(direct)←(direct)-1

1

Декрементирование  косвенно адресуемого регистра

DEC @R0

16

((R0))←((R0))-1

1

DEC @R1

17

((R1))←((R1))-1

1

Умножение

MUL  AB

A4

(B)←15-8{(A)×(B)} (A)←7-0{(A)×(B)} Если в результате: B≠0 OV←1

0

+

4

Деление

DIV  AB

84

(A)←{(A)/(B)} (B)← остаток

Если делитель B=0 OV←1

0

+

4

Десятичная коррекция

DA A

D4

Если (А3..0)>9 или (АС)=1

то (А3..0)←(А3..0)+6;

и если  (А7..4)>9 или С=1, то

(А7..4)←(А7..4)+6

+

1

Условные обозначения.

adr8 – восьмиразрядный адрес

adr16 – шестнадцатиразрядный адрес. Младший байт записывается в ячейке с меньшим адресом.

bit – адрес (номер) бита от 0 до FF

da (direct) – прямоадресуемый регистр (его адрес) от 0 до FF dt (data) – непосредственные данные от 0 до FF

rel – относительное смещение адреса от 80 (-128) до 7F (+127)

daпр и daист. – адреса регистров приемника и источника данных от 0 до FF

Источник: М.Л.Кулиш, СПРАВОЧНИК ПО ПРОГРАММИРОВАНИЮ BASCOM-8051, Краснодар 2001

По теме:

  • Комментарии