MCS-51系列单片机指令表

来源:互联网 发布:双色球精密分析软件 编辑:程序博客网 时间:2024/05/27 00:33

算术运算指令 (24)

机器码

助记符

功能

对标志影响

字节数

周期数

P

OV

AC

CY

282F

ADD  A,Rn

A+Rn→A

1

1

25

ADD  A,direct

A+direct→A

2

1

2627

ADD  A,@Ri

A+((Ri))→A

1

1

24

ADD  A,#data

A+ data →A

2

1

383F

ADDC  A,Rn

A+Rn+Cy →A

1

1

35

ADDC  A,direct

A+direct+ Cy →A

2

1

36,37

ADDC  A,@Ri

A+((Ri))+Cy →A

1

1

34

ADDC  A,#data

A+ data +Cy →A

2

1

989F

SUBB  A,Rn

A-Rn-Cy →A

1

1

95

SUBB  Adirect

A-direct-Cy →A

2

1

9697

SUBB  A@Ri

A-((Ri))-Cy →A

1

1

94

SUBB  A#data

A- data - Cy →A

2

1

04

INC  A

A+ 1 →A

×

×

×

1

1

080F

INC  Rn

Rn+ 1→Rn

×

×

×

×

1

1

05

INC  driect

direct+ 1 →direct

×

×

×

×

2

1

0607

INC  @Ri

((Ri))+ 1 →Ri

×

×

×

×

1

1

A3

INC  DPTR

DPTR+ 1 →DPTR

×

×

×

×

1

2

14

DEC  A

A- 1 →A

×

×

×

1

1

181F

DEC  Rn

Rn- 1→Rn

×

×

×

×

1

1

15

DEC  driect

direct- 1 →direct

×

×

×

×

2

1

1617

DEC  @Ri

((Ri))- 1 →Ri

×

×

×

×

1

1

A4

MUL  AB

A·B→AB

×

×

1

4

84

DIV  AB

A/B→AB

×

×

1

4

D4

DA  A

A进行十进制调整

1

1

 

逻辑运算指令 (25)

机器码

助记符

功能

对标志影响

字节数

周期数

P

OV

AC

CY

585F

ANL  ARn

ARn→A

×

×

×

1

1

55

ANL  Adirect

Adirect→A

×

×

×

2

1

5657

ANL  A@Ri

A((Ri))→A

×

×

×

1

1

54

ANL  A#data

A data →A

×

×

×

2

1

52

ANL  directA

directA→direct

×

×

×

×

2

1

53

ANL  direct#data

direct)∧ data →direct

×

×

×

×

3

2

484F

ORL  ARn

ARn→A

×

×

×

1

1

45

ORL  Adirect

Adirect→A

×

×

×

2

1

4647

ORL  A@Ri

A((Ri))→A

×

×

×

1

1

44

ORL  A#data

A data →A

×

×

×

2

1

42

ORL  directA

directA→direct

×

×

×

×

2

1

43

ORL  direct#data

direct)∨ data →direct

×

×

×

×

3

2

686F

XRL  ARn

ARn→A

×

×

×

1

1

65

XRL  Adirect

Adirect→A

×

×

×

2

1

6667

XRL  A@Ri

A((Ri))→A

×

×

×

1

1

64

XRL  A#data

A data →A

×

×

×

2

1

62

XRL  directA

directA→direct

×

×

×

×

2

1

63

XRL  direct#data

direct data →direct

×

×

×

×

3

2

E4

CLR  A

0 →A

×

×

×

1

1

F4

CPL  A

/A→A

×

×

×

×

1

1

23

RL  A

A循环左移一位

×

×

×

×

1

1

33

RLC  A

A带进位循环左移一位

×

×

×

×

1

1

03

RR  A

A循环右移一位

×

×

×

×

1

1

13

RRC  A

A带进位循环右移一位

×

×

×

×

1

1

C4

SWAP  A

A半字节交换

×

×

×

×

1

1

 

数据传送指令 (28)

机器码

助记符

功能

对标志影响

字节数

周期数

P

OV

AC

CY

E8EF

MOV  ARn

Rn→A

×

×

×

1

1

E5

MOV  Adriect

driect→A

×

×

×

2

1

E6E7

MOV  A@Ri

((Ri))→A

×

×

×

1

1

74

MOV  A#data

data →A

×

×

×

2

1

F8FF

MOV  RnA

ARn

×

×

×

×

1

1

A8--AF

MOV  Rndirect

driect→Rn

×

×

×

×

2

2

787F

MOV  Rn#data

data →Rn

×

×

×

×

2

1

F5

MOV  driectA

A→driect

×

×

×

×

2

1

888F

MOV  driectRn

Rn→driect

×

×

×

×

2

1

85

MOV  driect1driect2

driect2 →driect1

×

×

×

×

3

2

8687

MOV  driect@Ri

((Ri))→driect

×

×

×

×

2

2

75

MOV  driect#data

data→driect

×

×

×

×

3

2

F6F7

MOV  @RiA

ARi

×

×

×

×

1

2

A6A7

MOV  @Ridriect

driect →Ri

×

×

×

×

2

2

7677

MOV  @Ri#data

data →Ri

×

×

×

×

2

2

90

MOV  DPTR#data16

data16 →DPTR

×

×

×

×

3

1

93

MOVC A@A+DPTR

((A+DPTR))→A

×

×

×

×

1

2

83

MOVC A@A+PC

((A+PC))→A

×

×

×

×

1

2

E2E3

MOVX A@Ri

((Ri)+P2) →A

×

×

×

1

2

E0

MOVX A@DPTR

((DPTR)) →A

×

×

×

1

2

F2,F3

MOVX  @RiA

ARi+P2

×

×

×

1

2

F0

MOV  @DPTRA

ADPTR

×

×

×

×

1

2

C0

PUSH  direct

SP+1→SP
direct→SP

×

×

×

×

2

2

D0

POP  direct

((direct))→direct (SP)-1→SP

×

×

×

×

2

2

C88F

XCH  ARn

A← →Rn

×

×

×

1

1

C5

XCH  Adirect

A← →direct

×

×

×

2

1

C6C7

XCH  A@Ri

A← →((Ri))

×

×

×

1

1

D6D7

XCHD  A@Ri

A0--3← →((Ri))0--3

×

×

×

1

1

 

位操作指令 (12)

机器码

助记符

功能

对标志影响

字节数

周期数

P

OV

AC

CY

C3

CLR  C

0 → Cy

×

×

×

1

1

C2

CLR  bit

0 → bit

×

×

×

 

2

1

D3

SETB  C

1 → Cy

×

×

×

1

1

D2

SETB  bit

1 → bit

×

×

×

 

2

1

B3

CPL  C

/Cy → Cy

×

×

×

1

1

B2

CPL  bit

/bit → bit

×

×

×

 

2

1

82

ANL  Cbit

Cy)∧ bit → Cy

×

×

×

2

2

B0

ANL  C/bit

Cy /bit → Cy

×

×

×

2

2

72

ORL  Cbit

Cy bit → Cy

×

×

×

2

2

A0

ORL  C/bit

Cy)∨ /bit → Cy

×

×

×

2

2

A2

MOV  Cbit

bit→ Cy

×

×

×

2

1

92

MOV  bitC

Cy→ bit

×

×

×

2

1

 

控制转移指令 (22)

机器码

助记符

功能

 

对标志影响

字节数

周期数

P

OV

AC

CY

*1

ACALL  addr11

(PC)+2→PC (SP)+1→SP (PC)L→SP
(SP)+1→SP
(PC)H→SP addr11→PC10
0

×

×

×

×

2

2

12

LCALL  addr16

(PC)+2→PC (SP)+1→SP (PC)L→SP
(SP)+1→SP (PC)H→SP addr16→PC

×

×

×

×

3

2

22

RET

((SP))→PCH (SP)-1→SP
((SP))→PCL (SP)-1→SP

×

×

×

×

1

2

32

RETI

((SP))PCH (SP)-1SP
((SP))
PCL (SP)-1
SP
从中断返回

×

×

×

×

1

2

*1

AJMP  addr11

addr11 →PC100

×

×

×

×

2

2

02

LJMP  addr16

addr16 →PC

×

×

×

×

3

2

80

SJMP  rel

(PC)+(rel) →PC

×

×

×

×

2

2

73

JMP @A+DPTR

(A)+(DPTR)→PC

×

×

×

×

1

2

60

JZ  rel

(PC)+2→PC (A)=0,(PC)+(rel)→PC

×

×

×

×

2

2

70

JNZ  rel

(PC)+2→PC (A)≠0,(PC)+(rel)→PC

×

×

×

×

2

2

40

JC  rel

(PC)+2→PC
(Cy)=1,(PC)+(rel)→PC

×

×

×

×

2

2

50

JNC  rel

(PC)+2→PC
(Cy)=0,(PC)+(rel)→PC

×

×

×

×

2

2

20

JB  bit,rel

(PC)+3→PC (bit)=1,(PC)+(rel)→PC

×

×

×

×

3

2

30

JNB  bit,rel

(PC)+3→PC (bit)≠1,(PC)+(rel)→PC

×

×

×

×

3

2

10

JBC  bit,rel

(PC)+3→PC (bit)=1,
0 → bit,(PC)+(rel)→PC

×

×

×

3

2

B5

CJNE A,direct,rel

(PC)+3→PC
(A)≠(direct),
(PC)+(rel)→PC
(A)<(direct),1→Cy

×

×

×

3

2

B4

CJNE A,#data,rel

(PC)+3→PC
(A)≠data,
(PC)+(rel)→PC
(A)<DATA,1→CY< font>

×

×

×

3

2

B88F

CJNE Rn,#data,rel

(PC)+3→PC
(Rn)≠data,
(PC)+(rel)→PC
(Rn)<DATA,1→CY< font>

×

×

×

3

2

B6B7

CJNE
@Ri, #data, rel

(PC)+3→PC
((Ri))≠data,
(PC)+(rel)→PC
((Ri))<DATA,1→CY< font>

×

×

×

3

2

D8--DF

DJNZ  Rn,rel

(PC)+2→PC,(Rn)-1→Rn
(Rn)≠0,(PC)+(rel)→PC

×

×

×

×

3

2

D5

DJNZ  direct,rel

(PC)+2PC,(direct)-1direct
(direct)≠0,(PC)+(rel)→PC

×

×

×

×

3

2

00

NOP

空操作

×

×

×

×

1

1

 

伪指令(共7条)

伪指令

功能

格式

ORG

规定本条指令下面的程序和数据的起始地址

ORG  Addr16

EQU

将一个常数或汇编符号赋给字符名

字符名  EQU  常数或汇编符号

BIT

BIT之后的位地址值赋给字符名

字符名  BIT  位地址

DB

从指定的ROM地址单元开始存入DB后面的数据,这些数据可以是用逗号隔开的字节串或括在单引号中的ASCII字符串

DB  8位数据表

DW

从指定的ROM地址开始,在连续的单元中定义双字节数据

DW  16位数据表

DS

从指令地址开始保留DS之后表达式的值所规定的存储单元数,以备后用

DS  表达式

END

用来指示源程序到此全部结束

END

 

原创粉丝点击