微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机汇编语言指令集

51单片机汇编语言指令集

时间:11-27 来源:互联网 点击:

集(111条)

说明

字节

周期

1.数据传送指令(30条)

MOV A,Rn

寄存器送A

1

1

E8--EF

MOV A,data

直接字节送A

2

1

E5

MOV A,@Ri

间接RAM送A

1

1

E6--E7

MOV A,#data

立接数送A

2

1

74

MOV Rn,A

A送寄存器

1

1

F8--FF

MOV Rn,data

直接数送寄存器

2

2

A8--AF

MOV Rn,#data

立即数送寄存器

2

1

78--7F

MOV data,A

A送直接字节

2

1

F5

MOV data,Rn

寄存器送直接字节

2

1

88—8F

MOV data,data

直接字节送直接字节

3

2

85

MOV data,@Ri

间接Rn送直接字节

2

2

86;87

MOV data,#data

立即数送直接字节

3

2

75

MOV @Ri,A

A送间接Rn

1

2

F6;F7

MOV @Ri,data

直接字节送间接Rn

1

1

A6;A7

MOV @Ri,#data

立即数送间接Rn

2

2

76;77

MOV DPTR,#data16

16位常数送数据指针

3

1

90

MOV C,bit

直接位送进位位

2

1

A2

MOV bit,C

进位位送直接位

2

2

92

MOVC A,@A+DPTR

A+DPTR寻址程序存贮字节送A

3

2

93

MOVC A,@A+PC

A+PC寻址程序存贮字节送A

1

2

83

MOVX A,@Ri

外部数据送A(8位地址)

1

2

E2;E3

MOVX A,@DPTR

外部数据送A(16位地址)

1

2

E0

MOVX @Ri,A

A送外部数据(8位地址)

1

2

F2;F3

MOVX @DPTR,A

A送外部数据(16位地址)

1

2

F0

PUSH data

直接字节进栈道,SP加1

2

2

C0

POP data

直接字节出栈,SP减1

2

2

D0

XCH A,Rn

寄存器与A交换

1

1

C8—CF

XCH A,data

直接字节与A交换

2

1

C5

XCH A,@Ri

间接Rn与A交换

1

1

C6;C7

XCHD A,@Ri

间接Rn与A低半字节交换

1

1

D6;D7

2.逻辑运算指令(35条)

ANL A,Rn

寄存器与到A

1

1

58—5F

ANL A,data

直接字节与到A

2

1

55

ANL A,@Ri

间接RAM与到A

1

1

56;57

ANL A,#data

立即数与到A

2

1

54

ANL data,A

A与到直接字节

2

1

52

ANL data,#data

立即数与到直接字节

3

2

53

ANL C,bit

直接位与到进位位

2

2

82

ANL C,/bit

直接位的反码与到进位位

2

2

B0

ORL A,Rn

寄存器或到A

1

1

48—4F

ORL A,data

直接字节或到A

2

1

45

ORL A,@Ri

间接RAM或到A

1

1

46;47

ORL A,#data

立即数或到A

2

1

44

ORL data,A

A或到直接字节

2

1

42

ORL data,#data

立即数或到直接字节

3

2

43

ORL C,bit

直接位或到进位位

2

2

72

ORL C,/bit

直接位的反码或到进位位

2

2

A0

XRL A,Rn

寄存器异或到A

1

1

68—6F

XRL A,data

直接字节异或到A

2

1

65

XRL A,@Ri

间接RAM异或到A

1

1

66;67

XRL A,#data

立即数异或到A

2

1

64

XRL data,A

A异或到直接字节

2

1

62

XRL data,#data

立即数异或到直接字节

3

2

63

SETB C

进位位置1

1

1

D3

SETB bit

直接位置1

2

1

D2

CLR A

A清0

1

1

E4

CLR C

进位位清0

1

1

C3

CLR bit

直接位清0

2

1

C2

CPL A

A求反码

1

1

F4

CPL C

进位位取反

1

1

B3

CPL bit

直接位取反

2

1

B2

RL A

A循环左移一位

1

1

23

RLC A

A带进位左移一位

1

1

33

RR A

A右移一位

1

1

03

RRC A

A带进位右移一位

1

1

13

SWAP A

A半字节交换

1

1

C4

3.算术运算指令(24条)

ADD A,Rn

寄存器加到A

1

1

28—2F

ADD A,data

直接字节加到A

2

1

25

ADD A,@Ri

间接RAM加到A

1

1

26;27

ADD A,#data

立即数加到A

2

1

24

ADDC A,Rn

寄存器带进位加到A

1

1

38—3F

ADDC A,data

直接字节带进位加到A

2

1

35

ADDC A,@Ri

间接RAM带进位加到A

1

1

36;37

ADDC A,#data

立即数带进位加到A

2

1

34

SUBB A,Rn

从A中减去寄存器和进位

1

1

98—9F

SUBB A,data

从A中减去直接字节和进位

2

1

95

SUBB A,@Ri

从A中减去间接RAM和进位

1

1

96;97

SUBB A,#data

从A中减去立即数和进位

2

1

94

INC A

A加1

1

1

04

INC Rn

寄存器加1

1

1

08—0F

INC data

直接字节加1

2

1

05

INC @Ri

间接RAM加1

1

1

06;07

INC DPTR

数据指针加1

1

2

A3

DEC A

A减1

1

1

14

DEC Rn

寄存器减1

1

1

18—1F

DEC data

直接字节减1

2

1

15

DEC @Ri

间接RAM减1

1

1

16;17

MUL AB

A乘B

1

4

A4

div AB

A被B除

1

4

84

DA A

A十进制调整

1

1

D4

4.转移指令(22条)

AJMP addr 11

绝对转移

2

2

*1

LJMP addr 16

长转移

3

2

02

SJMP rel

短转移

2

2

80

JMP @A+DPTR

相对于DPTR间接转移

1

2

73

JZ rel

若A=0则转移

2

2

60

JNZ rel

若A≠0则转移

2

2

70

JC rel

若C=1则转移

2

2

40

JNC rel

若C≠1则转移

2

2

50

JB bit,rel

若直接位=1则转移

3

2

20

JNB bit,rel

若直接位=0则转移

3

2

30

JBC bit,rel

若直接位=1则转移且清除

3

2

10

CJNE A,data,rel

直接数与A比较,不等转移

3

2

B5

CJNE A,#data,rel

立即数与A比较,不等转移

3

2

B4

CJNE @Ri,#data,rel

立即数与间接RAM比较,不等转移

3

2

B6;B7

CJNE Rn,#data,rel

立即数与寄存器比较不等转移

3

2

B8—BF

DJNZ Rn,rel

寄存器减1不为0转移

2

2

D8—DF

DJNZ data,rel

直接字节减1不为0转移

3

2

D5

ACALL addr 11

绝对子程序调用

2

2

*1

LCALL addr 16

子程序调用

3

2

12

RET

子程序调用返回

1

2

22

RETI

中断程序调用返回

1

2

32

NOP

空操作

1

1

00


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top