视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
8051单片机汇编指令速查表
2025-09-28 02:24:28 责编:小OO
文档
8051系列单片机汇编语言指令速查表

编号指令名称指令助记符指令说明
数据传送类指令
1一般传送MOV A, #data将立即数#data送累加器A

2MOV direct, #data将立即数#data送片内RAM direct地址单元内

3Mov Rn, #data

将立即数#data送寄存器Rn

4Mov @Ri, #data寄存器Ri内为RAM地址,将立即数#data送该地址单元内

5Mov direct2, direct1将direct1地址单元的数据送 direct2地址单元内

6Mov direct, rn将Rn的数据送 direct地址单元内

7Mov Rn, direct将direct地址单元内的数据送Rn寄存器

8Mov direct, @Ri寄存器Ri内为RAM地址,将该地址单元内的数据送direct地址单元内

9Mov @Ri, direct寄存器Ri内为RAM地址,将direct地址单元内的数据送该地址单元内

10Mov A, Rn将寄存器Rn内的数据送累加器A

11Mov Rn, A将累加器A内的数据送寄存器Rn

12Mov A, direct将direct地址单元内的数据送累加器A

13Mov direct, A将累加器A内的数据送direct地址单元内

14Mov A, @Ri寄存器Ri内为RAM地址,将该地址单元内的数据送累加器A

15Mov @Ri , A寄存器Ri内为RAM地址,将累加器A的数据送该地址单元内

16目的地址传送Mov DPTR, #data16将16位立即数送数据指针DPTR寄存器

17字节交换SWAP A累加器A高低4位数据交换

18XCH A, Rn将累加器A数据和寄存器Rn内的数据交换

19XCH A, direct将累加器A数据和direct地址单元内的数据交换

20XCH A, @Ri寄存器Ri内为RAM地址,将该地址单元内的数据与累加器A的数据交换

21XCHD A, @Ri寄存器Ri内为RAM地址,将该地址单元内的数据低4位与的低4位交换

22与外部RAM传送

MOVX @DPTR, A将累加器A的数据送数据指针DPTR寄存器所指外部RAM地址单元内

23MOVX A , @DPTR将DPTR寄存器所指外部RAM地址单元内的数据送累加器A

24MOVX A, @Ri寄存器Ri内为片外RAM地址,将该地址单元内的数据送累加器A

25MOVX @Ri, A寄存器Ri内为片外RAM地址,将该地址单元内的数据送累加器A

26与ROM传送

MOVC A, @A+DPTRA+DPTR构成ROM地址,将该地址内的数据送累加器A内

27MOVC A, @A+PCA+PC构成ROM地址,将该地址内的数据送累加器A内

28栈操作PUSH direct堆栈指针SP自加1后,将direct地址单元的数据压进堆栈,

29POP direct堆栈的数据送direct地址单元中,后堆栈指针减1,

算术运算指令
30加法指令ADD A, Rn将寄存器Rn与累加器A的数据相加后,结果保存到累加器A

31ADD A, direct将direct地址单元内的数据与累加器A的数据相加后结果保存到累加器A

32ADD A, @Ri寄存器Ri内位地址,将该地址单元内的数据与累加器A的数据相加后结果保存到累加器A

33ADD A, #data将立即数与累加器A的数据相加后结果保存到累加器A

34带进位加法ADDC A, Rn将寄存器Rn与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A

35ADDC A, direct将direct地址单元内的数据与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A

36ADDC A, @Ri寄存器Ri内为RAM地址,将该地址单元内的数据与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A

37ADDC A, #data将立即数与累加器A的数据相加,再加上进位标志内的值后结果保存到累加器A

38带借位减法SUBB A, Rn将与累加器A的数据减去寄存器Rn的数据,再减去进位标志内的值,结果保存到累加器A

39SUBB A, direct将与累加器A的数据减去direct地址单元内的数据,再减去进位标志内的值,结果保存到累加器A

40SUBB A, @Ri寄存器Ri内为RAM地址,将累加器A的数据减去该地址单元内的数据,再减去进位标志内的值后,结果保存到累加器A

41SUBB A, #data将累加器A的数据减去立即数,再减去进位标志内的值后,结果保存到累加器A

42加1指令

INC A累加器A的值自加1

43INC Rn寄存器Rn的值自加1

44INC directdirect地址单元内值自加1

45INC @Ri寄存器Ri内为RAM地址,该地址单元内的值自加1

46INC DPTR数据指针寄存器DPTR内的值自加1

47减1指令

DEC A累加器A的值自减1

48DEC Rn寄存器Rn的值自减1

49DEC directdirect地址单元内的值自减1

50DEC @Ri寄存器Ri内为RAM地址,该地址单元内的值自减1

51乘法MUL AB累加器A与寄存器B内的值相乘,乘积的高8位保存在B寄存器,低8位保存在累加器A中

52除法DIV AB累加器A的值除以寄存器B的值,商保存在累加器A中,余数保存在B寄存器

53二-十进制调整

DA A对累加器A的结果进行十进制调整

逻辑运算指令
54逻辑与ANL A, Rn将累加器A的值和寄存器Rn的值进行与操作,结果保存到累加器A中

55ANL A, direct将累加器A的值和direct地址单元内的值进行与操作,结果保存到累加器A中

56ANL A, @Ri寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行与操作,结果保存到累加器A中

57ANL A, #data将累加器A的值和立即数进行与操作,结果保存到累加器A中

58ANL direct, A将累加器A的值和direct地址单元内的值进行与操作,结果保存到direct地址单元内

59ANL direct, #data将立即数和direct地址单元内的值进行与操作,结果保存到direct地址单元内

60逻辑或ORL A, Rn将累加器A的值和寄存器Rn的值进行或操作,结果保存到累加器A中

61ORL A, direct将累加器A的值和direct地址单元内的值进行或操作,结果保存到累加器A中

62ORL A, @Ri寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行或操作,结果保存到累加器A中

63ORL A, #data将累加器A的值和立即数进行或操作,结果保存到累加器A中

ORL direct, A将累加器A的值和direct地址单元内的值进行或操作,结果保存到direct地址单元内

65ORL direct, #data将立即数和direct地址单元内的值进行或操作,结果保存到direct地址单元内

66逻辑异或XRL A, Rn将累加器A的值和寄存器Rn的值进行异或操作,结果保存到累加器A中

67XRL A, direct将累加器A的值和direct地址单元内的值进行异或操作,结果保存到累加器A中

68XRL A, @Ri寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行异或操作,结果保存到累加器A中

69XRL A, #data将累加器A的值和立即数进行异或操作,结果保存到累加器A中

70XRL direct, A将累加器A的值和direct地址单元内的值进行异或操作,结果保存到direct地址单元内

71XRL direct, #data将立即数和direct地址单元内的值进行异或操作,结果保存到direct地址单元内

72按位取反CPL A累加器A的值按位取反

73累加器清零CLR  A累加器A清0

74逻辑右移RR  A累加器A的值循环右移1位

75逻辑左移RL  A累加器A的值循环左移1位

76带进位右移RRC  A累加器A的值带进位循环右移1位

77带进位左移RLC  A累加器A的值带进位循环左移1位

控制转移指令
78无条件转移SJMP relrel为地址偏移量,PC加2后的地址加上rel作为目标地址,程序跳到目标地址继续运行

79AJMP addr11(a10- a0)addr11为11位地址,PC加2后的地址高5位与指令中的低11位地址构成目标地址,程序跳到目标地址继续运行

80LJMP addr16将addr16的16位地址送程序计数器PC,使机器执行下一条指令时无条件转移到addr16处执行程序

81JMP @A+DPTR目标地址的基地址放在DPTR中,目标地址对基地址的偏移量放在累加器A中,它们相加构成目标地址

82条件转移JZ relIf(累加器A=0)则PC加2再加上rel作为目标地址

83JNZ  relIf(累加器A!=0)则PC加2再加上rel作为目标地址

84CJNE A, direct, relIf(累加器A!= direct地址单元的值)则PC加2再加上rel作为目标地址

85CJNE A, #data, relIf(累加器A!= 立即数)则PC加2再加上rel作为目标地址

86CJNE Rn, #data, relIf(寄存器Rn的值!= 立即数)则PC加2再加上rel作为目标地址

87CJNE @Ri, #data, rel寄存器Ri内为RAM地址,If(该地址单元的值!= 立即数)则PC加2再加上rel作为目标地址

88循环转移DJNZ Rn, rel寄存器Rn的值减1后,If(寄存器Rn的值!=0)则PC加2再加上rel作为目标地址

DJNZ direct, relDirect地址单元的值减1后,If(该值!=0)则PC加3再加上rel作为目标地址

90布尔条件转移JC  relIf(CY=1)则PC加2再加上rel作为目标地址

91JNC  relIf(CY=0)则PC加2再加上rel作为目标地址

92JB bit, relIf(bit位=1)则PC加3再加上rel作为目标地址

93JNB bit, relIf(bit位=0)则PC加3再加上rel作为目标地址

94JBC bit, relIf(bit位=1)则PC加3再加上rel作为目标地址,且bit位清0

95调用指令ACALL addr11addr11为11位地址,PC加2后的地址PUSH进堆栈,再将PC的地址高5位与指令中的低11位地址构成目标地址,程序跳到目标地址继续运行

96LCALL  addr16PC加3后的地址PUSH进堆栈,再将16位地址送PC作为目标地址,程序跳到目标地址继续运行

97返回指令RET子程序返回指令,把堆栈中的地址恢复到PC中使程序回到调用处

98RETI中断程序返回指令,把堆栈中的地址恢复到PC中使程序回到调用处

99空操作NOP空操作
位操作指令
100布尔传送MOV C, bit将bit位地址中的值送PSW中的进位标志位CY

101MOV bit, C将PSW中的进位标志位CY的值送bit位地址中

102位清0

CLR  C将进位标志位CY清0

103位清0

CLR  bit将bit位地址内清0

104位置1

SETB C将进位标志位CY置1

105SETB bit将bit位地址内置1

106位与ANL C, bit将Cy和bit位地址中的值进行与操作后,结果送Cy

107ANL C, /bitbit位地址中的值取反后再与Cy进行与操作,结构送Cy

108位或ORL C, bit将Cy和bit位地址中的值进行或操作后,结果送Cy

109ORL C, /bitbit位地址中的值取反后再与Cy进行或操作,结构送Cy

110位取反CPL  C将Cy取反

111CPL  bit将bit位地址的值取反

说明:

    1)Ri, Rn指当前工作寄存器,i,n = 0 – 7,当前工作寄存器由程序状态字寄存器PSW的2个位RS1, RS0决定下载本文

显示全文
专题