51单片机汇编指令汇总

2019-03-28 23:07

单片机指令功能一览表

助记符 代码 说明 MOV A,Rn E8~EF 寄存器A MOV A,direct E5 dircet 直接字节送A MOV A,@Ri ER~E7 间接RAM送A MOV A,#data 74 data 立即数送A MOV Rn,A F8~FF A送寄存器 MOV Rn,dircet A8~AF dircet 直接字节送寄存器 MOV Rn,#data 78~7F data 立即数送寄存器 MOV dircet,A MOV dircet,Rn MOV dircet1,dircet2 MOV dircet,@Ro MOV dircet,#data MOV @Ri,A MOV @Ri,#data MOV @Ri,#data MOV DPTR,#data16 MOVC A,@A+DPTR MOVC A,@A+PC MOVX A,@Ri MOVX A,@DPTR MOVX @Ri,A MOVX @DPTR,A PUSH dircet POP dircet XCH A,Rn XCH A,dircet XCH A,@Ri XCH A,@Ri SWAP A

算术操作 ADD A,Rn ADD A,dircet ADD A,@Ri ADD A,#data ADD A,Rn ADD A,dircet ADD A,@Ri ADD A,data F5 dircet 88~8F dircet 85 dircet1 dircet2 86~87 75 dircet data F6~F7 76~77 data 76~77 data 90 data 15~8 data7~0 93 83 E2~E3 E0 F2~F3 F0 C0 dircet D0 dircet C8~CF C5 dircet C6~C7 D6~D7 C4 28~2F 25 dircet 26~27 24data 38~3F 35dircet 36~37 34 data A送直接字节 寄存器送直接字节 直接字节送直接字节 间接RAM送直接字节 立即数送直接字节 A送间接RAM 直接字节送间接RAM 立即数送间接RAM 16位常数送数据指针

由((A)+(DPTR))寻址的程序存贮 器字节选A

由((A)+(PC));寻址的程序存贮器字节送A 送外部数据(8位地址)送A 送外部数据(16位地址)送A A送外部数据(8位地址) A送外部数据(16位地址) 直接字节进栈,SP加1 直接字节退栈,SP减1 交换A和寄存器 交换A和直接字节

交换A和间接RAM 交换A和间接RAM的低位 (A的二个半字节交换) 寄存器加到A 直接字节加到A 间接RAM加到A 立即数加到A

寄存器和进位位加到A 直接字节和进位位加到A 间接字节和进位位加到A 立即数和进位位加到A

1

ADD A,Rn 98~9F A减去寄存器和进位位 ADD A,dircet 95 dircet A减去直接字节和进位位 ADD A,@Ri 36~37 间接RAM和进位位加到A ADD A,data 34 data 立即数和进位位加到A SUBB A,Rn 98~9F A减去寄存器和进位位 SUBB A,dircet 95 dircet A减去直接字节和进位位 SUBB A,@Ri 96~97 A减去间接RAM和进位位 SUBB A,#data 94 data A减去立即数和进位位 INC A 04 A加1 INC Rn INC dircet INC @Ri DEC A DEC Rn DEC dircet DEC @Ri INC DPTR MUL AB DIV AB DA A 逻辑操作

ANL A,Rn ANL A,dircet ANL A,@Ri ANL A,#data ANL dircet A ANL dircet,#data ORL A,Rn ORL A,dircet ORL A,@Ri ORL A,#data ORL dircet,A ORL dircet,#data XRL A,Rn XRL A,dircet XRL A,@Ri XRL A,#data XRL dircet A XRL dircet,#data CLR A CPL A RL A 08~0F 05 dircet 06~07 14 18~1F 15 dircet 16~17 A3 A4 84 D4 58~5F 55 dircet 56~57 54 data 52 dircet 53 dircet data 48~4F 45 dircet 46~47 44 data 42 dircet 43 dircet data 68~6F 65 dircet 66~67 64 data 62 dircet 63 dircet data E4 F4 23 寄存器加1 直接字节加1 间接RAM加1 A减1 寄存器减1 直接字节减1 间接RAM减1 数据指针加1 A乘以B A除以B

A的十进制加法调整 寄存器“与”到A 直接字节“与”到A 间接RAm“与”到A 立即数“与”到A A“与”到直接字节 立即数“与”到直接字节 寄存器“或”到A 直接字节“或”到A 间接RAM“或”到A 立即数“或”到A A“或”到直接字节 立即数“或”到直接字节 寄存器“异或”到A 直接字节“异或”到A 间接RAM“异或”到A 立即数“异或”到A A“异或”到直接字节 立即数“异或”到直接字节 清零 A取反 A左环移

2

RLC A 33 A通过进位左环移 RR A 03 A右环移

RRC A 13 A通过进位右环移

控制程序转移

ACALL addr 11 *1 addr(a7~a0) 绝对子程序调用 LCALL addr 16 12 addr(15~8) 长子程序调用 addr(7~0)

RET RETI addr 11 AJMP addr 11 LJMP addr 16 SJMP rel JMP @A+DPTR JZ rel JNZ rel CJNE A,dircet,rel CJNE A,#data,rel CJNE A,Rn,#data,rel CJNE @Ri,#data,rel DJNZ Rn,rel DJNZ dircet,rel NOP *=a10a9a8l △=a10a9a80

布尔变量操作

CLR C CLR bit SETB C SETB bit CPL C CPL bit ANL C,bit ANL C,/bit ORL C,bit ORL C,/bit MOV C,bit MOV bit,C JC rel JNC rel 22 32 △1 addr(a7~a6) 02addr(15~8) addr(7~0) 80 rel 73 60 rel 70 rel B5 dircet rel B4 data rel B8~BF data rel B6~B7 data rel D8~DF rel B5 dircet rel 00 C3 C2 D3 D2 B3 B2 82 dit B0 72 bit A0 bit A2 bit 92 bit 40 rel 50 rel 子程序调用返回 中断调用返回 绝对转移 长转移

短转移,相对转移

相对于DPTR间接转移 A为零转移 A为零转移

直接字节与A比较,不等则转移 立即数与A比较,不等则转移 立即数与寄存器比较,不等则转移 立即数与间接RAM比较,不等则转移 寄存器减1,不为零则转移 直接字节减1,不为零则转移 空操作 清零进位 清零直接位 置位进位 置位直接位 进位取反 直接位取反 直接数“与”到进位 直接位的反“与”到进位 直接位“或”到进位 直接位的反“或”到进位 直接位送进位 进位送直接位 进位位为1转移 进位位为0转移

3

JB bit,rel 20 bit rel 直接位为1相对转移 JNB bit,rel 30 bit rel 直接位为0相对转移

JBC bit,rel 10 bit rel 直接位为1相对转移,然后清零该位

[1]. 循环移位指令(4条)

RL A ;累加器A中的内容左移一位 RR A ;累加器A中的内容右移一位

RLC A ;累加器A中的内容连同进位位CY左移一位 RRC A ;累加器A中的内容连同进位位CY右移一位

[2]. 累加器半字节交换指令(1条)

SWAP A ; 累加器中的内容高低半字节互换

[3]. 求反指令(1条)

CPL A ; 累加器中的内容按位取反

[4]. 清零指令(1条)

CLR A ; 0→(A),累加器中的内容清0

[5]. 逻辑与操作指令(6条)

ANL A,data ;累加器A中的内容和直接地址单元中的内容执行与逻辑操作。结果存在寄存器A中。 ANL data,#data ;直接地址单元中的内容和立即数执行与逻辑操作。结果存在直接地址单元中。 ANL A,#data ;累加器A的内容和立即数执行与逻辑操作。结果存在累加器A中。

ANL A,Rn ;累加器A的内容和寄存器Rn中的内容执行与逻辑操作。结果存在累加器A中。 ANL data,A ;直接地址单元中的内容和累加器A的内容执行与逻辑操作。结果存在直接地址单元中。 ANL A,@Ri ;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行与逻辑操作。结果存在累加器A中。

[6]. 逻辑或操作指令(6条)

这组指令的作用是将两个单元中的内容执行逻辑或操作。如果直接地址是I/O地址,则为“读—修改—写”操作。

ORL A,data ;累加器A中的内容和直接地址单元中的内容执行逻辑或操作。结果存在寄存器A中。 ORL data,#data ;直接地址单元中的内容和立即数执行逻辑或操作。结果存在直接地址单元中。 ORL A,#data ;累加器A的内容和立即数执行逻辑或操作。结果存在累加器A中。

ORL A,Rn ;累加器A的内容和寄存器Rn中的内容执行逻辑或操作。结果存在累加器A中。 ORL data,A ;直接地址单元中的内容和累加器A的内容执行逻辑或操作。结果存在直接地址单元中。 ORL A,@Ri ;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑或操作。结果存在累加器A中。

[7]. 逻辑异或操作指令(6条)

XRL A,data ;累加器A中的内容和直接地址单元中的内容执行逻辑异或操作。结果存在寄存器A中。 XRL data,#data ;直接地址单元中的内容和立即数执行逻辑异或操作。结果存在直接地址单元中。

4

XRL A,#data ;累加器A的内容和立即数执行逻辑异或操作。结果存在累加器A中。

XRL A,Rn ;累加器A的内容和寄存器Rn中的内容执行逻辑异或操作。结果存在累加器A中。

XRL data,A ;直接地址单元中的内容和累加器A的内容执行逻辑异或操作。结果存在直接地址单元中。 XRL A,@Ri ;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑异或操作。结果存在累加器A中

控制转移类指令分析

[1]. 无条件转移指令(4条)

LJMP addr16 ;addr16→(PC),给程序计数器赋予新值(16位地址)

AJMP addr11 (;PC)+2→(PC),addr11→(PC10-0)程序计数器赋予新值(11位地址),(PC15-11)不改变

SJMP rel ;(PC)+ 2 + rel→(PC)当前程序计数器先加上2再加上偏移量给程序计数器赋予新值

JMP @A+DPTR ;(A)+ (DPTR)→(PC),累加器所指向地址单元的值加上数据指针的值给程序计数器赋予新值

[2]. 条件转移指令(8条)

JZ rel ; A=0,(PC)+ 2 + rel→(PC),累加器中的内容为0,则转移到偏移量所指向的地址,否则程序往下执行

JNZ rel ; A≠0,(PC)+ 2 + rel→(PC),累加器中的内容不为0,则转移到偏移量所指向的地址,否则程序往下执行

CJNE A, data, rel ; A≠(data),(PC)+ 3 + rel→(PC),累加器中的内容不等于直接地址单元的内容,则转移到偏移量所指向的地址,否则程序往下执行

CJNE A, #data, rel ; A≠#data,(PC)+ 3 + rel→(PC),累加器中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行

CJNE Rn, #data, rel ; A≠#data,(PC)+ 3 + rel→(PC),工作寄存器Rn中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行

CJNE @Ri, #data, rel ; A≠#data,(PC)+ 3 + rel→(PC),工作寄存器Ri指向地址单元中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行

布尔变量操作指令分析

[1]. 位传送指令(2条)

MOV C,bit ;bit→CY,某位数据送CY MOV bit,C ;CY→bit,CY数据送某位

[2]. 位置位复位指令(4条) CLR C ; 0→CY,清CY CLR bit ; 0→bit,清某一位

5

SETB C ; 1→CY,置位CY SETB bit ; 1→bit,置位某一位

[3]. 位运算指令(6条)

ANL C,bit ;(CY)∧(bit)→CY ANL C,/bit ;(CY)∧( )→CY ORL C,bit ;(CY)∨(bit)→CY ORL C,/bit ;(CY)∧()→CY CPL C ;()→CY CPL bit ;()→bir

[4]. 位控制转移指令(5)

JC rel ; (CY)=1转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。 JNC rel ; (CY)=0转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。 JB bit, rel ; 位状态为1转移。 JNB bit, rel ; 位状态为0转移。

JBC bit, rel ; 位状态为1转移,并使该位清“0”。

************************

51系列单片机指令快速记忆法 1.英文还原法

单片机的操作码助记符是该指令功能的英文缩写,将缩写还原成英语原文,再对照汉语有助于理解其助记符含义,从而加强记忆。例如:

增量 INC-Incremect 减量 DNC-Decrement 短转移 SJMP-Short jump 长转移 LJMP-Long jump 比较转移 CJNE-Compare jump not equality 绝对转移 AJMP-Absolute jump 空操作 NOP-No operation 交换 XCH-Exchange 加法 ADD-Addition 乘法 MUL-Multiplication 除法 DIV-Division 左环移 RL-Rotate left 进位左环移 RLC-Rotate left carry 右环移 RR-Rotate right 进位右环移RRC-Rotate right carry

2?功能模块记忆法

单片机的44个指令助记符,按所属指令功能可分为五大类,每类又可以按功能相似原 则为2~3组。这样,化整为零,各个击破,实现快速记忆。 1)数据传送组

2)加减运算组:MOV 内部数据传送 ADD 加法 MOVC 程序存储器传送 ADDC 带进位加法 MOVX 外部数据传送 SUBB 带进位减法 3)逻辑运算组

4)子程序调用组:ANL 逻辑与 LCALL 长调用 ORL 逻辑或 ALALL 绝对调用 XRL 逻辑异或 RET 子程序返回

6


51单片机汇编指令汇总.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:计量与计价计算题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: