51单片机指令速查表
51单片机汇编指令速查表

51单片机汇编指令速查表指令格式功能简述字节数周期一、数据传送类指令MOV A, Rn 寄存器送累加器 1 1MOV Rn,A 累加器送寄存器 1 1MOV A ,@Ri 内部RAM单元送累加器 1 1MOV @Ri ,A 累加器送内部RAM单元 1 1MOV A ,#data 立即数送累加器 2 1MOV A ,direct 直接寻址单元送累加器 2 1MOV direct ,A 累加器送直接寻址单元 2 1MOV Rn,#data 立即数送寄存器 2 1MOV direct ,#data 立即数送直接寻址单元 3 2MOV @Ri ,#data 立即数送内部RAM单元 2 1MOV direct ,Rn 寄存器送直接寻址单元 2 2MOV Rn ,direct 直接寻址单元送寄存器 2 2MOV direct ,@Ri 内部RAM单元送直接寻址单元 2 2 MOV @Ri ,direct 直接寻址单元送内部RAM单元 2 2 MOV direct2,direct1 直接寻址单元送直接寻址单元 3 2 MOV DPTR ,#data16 16位立即数送数据指针 3 2MOVX A ,@Ri 外部RAM单元送累加器(8位地址) 1 2 MOVX @Ri ,A 累加器送外部RAM单元(8位地址) 1 2 MOVX A ,@DPTR 外部RAM单元送累加器(16位地址) 1 2 MOVX @DPTR ,A 累加器送外部RAM单元(16位地址) 1 2 MOVC A ,@A+DPTR 查表数据送累加器(DPTR为基址) 1 2 MOVC A ,@A+PC 查表数据送累加器(PC为基址) 1 2 XCH A ,Rn 累加器与寄存器交换 1 1XCH A ,@Ri 累加器与内部RAM单元交换 1 1XCHD A ,direct 累加器与直接寻址单元交换 2 1 XCHD A ,@Ri 累加器与内部RAM单元低4位交换 1 1 SWAP A 累加器高4位与低4位交换 1 1POP direct 栈顶弹出指令直接寻址单元 2 2PUSH direct 直接寻址单元压入栈顶 2 2二、算术运算类指令ADD A, Rn 累加器加寄存器 1 1ADD A,@Ri 累加器加内部RAM单元 1 1ADD A, direct 累加器加直接寻址单元 2 1ADD A, #data 累加器加立即数 2 1ADDC A, Rn 累加器加寄存器和进位标志 1 1ADDC A,@Ri 累加器加内部RAM单元和进位标志 1 1 ADDC A, #data 累加器加立即数和进位标志 2 1 ADDC A, direct 累加器加直接寻址单元和进位标志 2 1 INC A 累加器加1 1 1INC Rn 寄存器加1 1 1INC direct 直接寻址单元加1 2 1INC @Ri 内部RAM单元加1 1 1INC DPTR 数据指针加1 1 2DA A 十进制调整 1 1SUBB A, Rn 累加器减寄存器和进位标志 1 1SUBB A,@Ri 累加器减内部RAM单元和进位标志 1 1 SUBB A, #data 累加器减立即数和进位标志 2 1 SUBB A, direct 累加器减直接寻址单元和进位标志 2 1 DEC A 累加器减1 1 1DEC Rn 寄存器减1 1 1DEC @Ri 内部RAM单元减1 1 1DEC direct 直接寻址单元减1 2 1MUL AB 累加器乘寄存器B 1 4DIV AB 累加器除以寄存器B 1 4三、逻辑运算类指令ANL A, Rn 累加器与寄存器 1 1ANL A,@Ri 累加器与内部RAM单元 1 1ANL A, #data 累加器与立即数 2 1ANL A, direct 累加器与直接寻址单元 2 1ANL direct, A 直接寻址单元与累加器 2 1ANL direct, #data 直接寻址单元与立即数 3 1ORL A, Rn 累加器或寄存器 1 1ORL A,@Ri 累加器或内部RAM单元 1 1ORL A,#data 累加器或立即数 2 1ORL A,direct 累加器或直接寻址单元 2 1ORL direct, A 直接寻址单元或累加器 2 1ORL direct, #data 直接寻址单元或立即数 3 1XRL A, Rn 累加器异或寄存器 1 1XRL A,@Ri 累加器异或内部RAM单元 1 1XRL A,#data 累加器异或立即数 2 1XRL A,direct 累加器异或直接寻址单元 2 1XRL direct, A 直接寻址单元异或累加器 2 1XRL direct, #data 直接寻址单元异或立即数 3 2RL A 累加器左循环移位 1 1RLC A 累加器连进位标志左循环移位 1 1RR A 累加器右循环移位 1 1RRC A 累加器连进位标志右循环移位 1 1CPL A 累加器取反 1 1CLR A 累加器清零 1 1四、控制转移类指令类ACCALL addr11 2KB范围内绝对调用 2 2AJMP addr11 2KB范围内绝对转移 2 2LCALL addr16 2KB范围内长调用 3 2LJMP addr16 2KB范围内长转移 3 2SJMP rel 相对短转移 2 2JMP @A+DPTR 相对长转移 1 2RET 子程序返回 1 2RET1 中断返回 1 2JZ rel 累加器为零转移 2 2JNZ rel 累加器非零转移 2 2CJNE A ,#data ,rel 累加器与立即数不等转移 3 2 CJNE A ,direct ,rel 累加器与直接寻址单元不等转移 3 2 CJNE Rn,#data ,rel 寄存器与立即数不等转移 3 2 CJNE @Ri ,#data,rel RAM单元与立即数不等转移 3 2 DJNZ Rn ,rel 寄存器减1不为零转移 2 2DJNZ direct ,rel 直接寻址单元减1不为零转移 3 2 NOP 空操作 1 1五、布尔操作类指令(C表示进位标识)MOV C, bit 直接寻址位送C 2 1MOV bit, C C送直接寻址位 2 1CLR C C清零 1 1CLR bit 直接寻址位清零 2 1CPL C C取反 1 1CPL bit 直接寻址位取反 2 1SETB C C置位 1 1SETB bit 直接寻址位置位 2 1ANL C, bit C逻辑与直接寻址位 2 2 ANL C, /bit C逻辑与直接寻址位的反 2 2 ORL C, bit C逻辑或直接寻址位 2 2 ORL C, /bit C逻辑或直接寻址位的反 2 2 JC rel C为1转移 2 2JNC rel C为零转移 2 2JB bit,rel 直接寻址位为1转移 3 2JNB bit,rel 直接寻址为0转移。
mcs_51的指令表

2
#data8
8位立即数送入间接RAM单元
#00H~#FFH
2
1
MCS-51单片机指令表(共111条指令)
表D.1 8位数据传送指令
表D.2 16位数据的传送类指令
助记符
功能说明
寻址范围
字节数
机器周期
MOV DPTR,#data16
16位立即数地址送入数据指针寄存器
0000H~FFFFH
3
2
表D.3外部数据传送类指令
直接地址单元内容与累加器内容交换
00H~FFH
2
1
@Ri
间接RAM内容与累加器内容交换
(R0~R7) , 00H~FFH
1
1
MOVC A,@A+DPTR
以DPTR为基地址变址寻址单元中的数据送入A
0000H~FFFFH
1
2
MOVC A,@A+PC
以PC为基地址变址寻址单元中的数据送入A
PC向下00H~FFH
堆栈中的数据弹出到到直接地址单元
2
2
NOP
空操作
1
1
表D.10位操作类指令
助记符
功能说明
字节数
机器周期
CLR C
清进位位
1
1
CLR bit
清直接地址位
2
1
SETB C
置进位位
1
1
SETB bit
置直接地址位
2
1
CPL C
进位位求反
1
1
CPL bit
直接地址位求反
2
1
ANL C,bit
进位位内容与直接地址位内容相与
3
MCS-51单片机指令简表

算 术 运 算 类 指 令
算 术 运 算 类 指 令
04 08~0F 05 __ 06~07 A3 14 18~1F 16~17 15 __ A4 84 D4 58~5F 56~57 54 __ 55 __ 52 __ 53 __ __ 48~4F 46~47 44 __ 45 __ 42 __ 43 __ __ 68~6F 66~67 64 __ 65 __ 62 __ 63 __ __ 23 33 03 13 F4 E4 A2 __ 92 __ C3 C2 __ B3 B2 __ D3 D2 __ 82 __ B0 __
高四位 ↓ → 低四位 0 1 0 1 NOP JBC bit,rel AJMP0 ACALL0
(反汇编)
2 LJMP addr16 LCALL addr16 RET RETI ORL dir,A
3 RR A RRC A RL A RLC A ORL dir,#data ANL dir,#data XRL dir,#data
INC A INC Rn INC direct INC @Ri INC DPTR DEC A DEC Rn DEC @Ri DEC direct MUL AB DIV AB DA A ANL A, Rn ANL A, @Ri ANL A, #data ANL A, direct ANL direct, A ANL direct, #data ORL A, Rn ORL A,@Ri ORL A,#data ORL A,direct ORL direct, A ORL direct,#data XRL A, Rn XRL A,@Ri XRL A,#data XRL A,direct XRL direct, A XRL direct,#data RL A RLC A RR A RRC A CPL A CLR A MOV MOV CLR CLR CPL CPL SETB SETB ANL ANL C,bit bit,C C bit C bit C bit C,bit C,/ bit
MCS-51指令表

MCS-51指令系统所用的符号和含义
addr11 11位地址
addr16 16位地址
bit 位地址
rel 相对偏移量,为8位有符号数(补码形式)
direct 直接地址单元
#data 立即数
Rn 工作寄存器R0~R7
A 累加器
Ri i=0,1,R0或R1
X 片内RAM中的直接地址或寄存器
@ 表示间址寄存器的符号表示直接地址X中的内容;在间接寻址方式中,表示间址寄存器地址X指出的地址单元中的内容
→数据传送方向
∧逻辑与
∨逻辑或
⊕逻辑异或
√对标志产生影响
×不影响标志
算术运算指令
续上表
算术运算指令
逻辑运算指令
数据传送指令
续上表
位操作指令
续上表
控制转移指令。
51指令速查表

XCHD A, @Ri
寄存器Ri内为RAM地址,将该地址单元内的数据低4位与的低4位交换
22
与外部RAM传送
MOVX @DPTR, A
将累加器A的数据送数据指针DPTR寄存器所指外部RAM地址单元内
23
MOVX A , @DPTR
将DPTR寄存器所指外部RAM地址单元内的数据送累加器A
24
MOVX A, @Ri
8051系列单片机汇编语言指令速查表
编号
指令名称
指令助记符
指令说明
数据传送类指令
1
一般传送
MOV A, #data
将立即数#data送累加器A
2
MOV direct, #data
将立即数#data送片内RAM direct地址单元内
3
Mov Rn,#data
将立即数#data送寄存器Rn
4
Mov @Ri, #data
将direct地址单元内的数据送累加器A
13
Mov direct, A
将累加器A内的数据送direct地址单元内
14
Mov A, @Ri
寄存器Ri内为RAM地址,将该地址单元内的数据送累加器A
15
Mov @Ri , A
寄存器Ri内为RAM地址,将累加器A的数据送该地址单元内
16
目的地址传@Ri
寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行与操作,结果保存到累加器A中
57
ANL A, #data
将累加器A的值和立即数进行与操作,结果保存到累加器A中
58
ANL direct, A
将累加器A的值和direct地址单元内的值进行与操作,结果保存到direct地址单元内
51单片机汇编指令速查表

51单片机汇编指令速查表指令格式功能简述字节数周期一、数据传送类指令MOV A, Rn 寄存器送累加器 1 1MOV Rn,A 累加器送寄存器 1 1MOV A ,@Ri 内部RAM单元送累加器 1 1MOV @Ri ,A 累加器送内部RAM单元 1 1MOV A ,#data 立即数送累加器 2 1MOV A ,direct 直接寻址单元送累加器 2 1MOV direct ,A 累加器送直接寻址单元 2 1MOV Rn,#data 立即数送寄存器 2 1MOV direct ,#data 立即数送直接寻址单元 3 2MOV @Ri ,#data 立即数送内部RAM单元 2 1MOV direct ,Rn 寄存器送直接寻址单元 2 2MOV Rn ,direct 直接寻址单元送寄存器 2 2MOV direct ,@Ri 内部RAM单元送直接寻址单元 2 2 MOV @Ri ,direct 直接寻址单元送内部RAM单元 2 2 MOV direct2,direct1 直接寻址单元送直接寻址单元 3 2 MOV DPTR ,#data16 16位立即数送数据指针 3 2MOVX A ,@Ri 外部RAM单元送累加器(8位地址) 1 2 MOVX @Ri ,A 累加器送外部RAM单元(8位地址) 1 2 MOVX A ,@DPTR 外部RAM单元送累加器(16位地址) 1 2 MOVX @DPTR ,A 累加器送外部RAM单元(16位地址) 1 2 MOVC A ,@A+DPTR 查表数据送累加器(DPTR为基址) 1 2MOVC A ,@A+PC 查表数据送累加器(PC为基址) 1 2 XCH A ,Rn 累加器与寄存器交换 1 1XCH A ,@Ri 累加器与内部RAM单元交换 1 1XCHD A ,direct 累加器与直接寻址单元交换 2 1 XCHD A ,@Ri 累加器与内部RAM单元低4位交换 1 1 SWAP A 累加器高4位与低4位交换 1 1POP direct 栈顶弹出指令直接寻址单元 2 2PUSH direct 直接寻址单元压入栈顶 2 2二、算术运算类指令ADD A, Rn 累加器加寄存器 1 1ADD A, @Ri 累加器加内部RAM单元 1 1ADD A, direct 累加器加直接寻址单元 2 1ADD A, #data 累加器加立即数 2 1ADDC A, Rn 累加器加寄存器和进位标志 1 1ADDC A, @Ri 累加器加内部RAM单元和进位标志 1 1 ADDC A, #data 累加器加立即数和进位标志 2 1ADDC A, direct 累加器加直接寻址单元和进位标志 2 1 INC A 累加器加1 1 1INC Rn 寄存器加1 1 1INC direct 直接寻址单元加1 2 1INC @Ri 内部RAM单元加1 1 1INC DPTR 数据指针加1 1 2DA A 十进制调整 1 1SUBB A, Rn 累加器减寄存器和进位标志 1 1SUBB A, @Ri 累加器减内部RAM单元和进位标志 1 1 SUBB A, #data 累加器减立即数和进位标志 2 1SUBB A, direct 累加器减直接寻址单元和进位标志 2 1 DEC A 累加器减1 1 1DEC Rn 寄存器减1 1 1DEC @Ri 内部RAM单元减1 1 1DEC direct 直接寻址单元减1 2 1MUL AB 累加器乘寄存器B 1 4DIV AB 累加器除以寄存器B 1 4三、逻辑运算类指令ANL A, Rn 累加器与寄存器 1 1ANL A, @Ri 累加器与内部RAM单元 1 1ANL A, #data 累加器与立即数 2 1ANL A, direct 累加器与直接寻址单元 2 1ANL direct, A 直接寻址单元与累加器 2 1ANL direct, #data 直接寻址单元与立即数 3 1ORL A, Rn 累加器或寄存器 1 1ORL A,@Ri 累加器或内部RAM单元 1 1ORL A,#data 累加器或立即数 2 1ORL A,direct 累加器或直接寻址单元 2 1ORL direct, A 直接寻址单元或累加器 2 1ORL direct, #data 直接寻址单元或立即数 3 1XRL A, Rn 累加器异或寄存器 1 1XRL A,@Ri 累加器异或内部RAM单元 1 1XRL A,#data 累加器异或立即数 2 1XRL A,direct 累加器异或直接寻址单元 2 1XRL direct, A 直接寻址单元异或累加器 2 1XRL direct, #data 直接寻址单元异或立即数 3 2RL A 累加器左循环移位 1 1RLC A 累加器连进位标志左循环移位 1 1RR A 累加器右循环移位 1 1RRC A 累加器连进位标志右循环移位 1 1CPL A 累加器取反 1 1CLR A 累加器清零 1 1四、控制转移类指令类ACCALL addr11 2KB范围内绝对调用 2 2AJMP addr11 2KB范围内绝对转移 2 2LCALL addr16 2KB范围内长调用 3 2LJMP addr16 2KB范围内长转移 3 2SJMP rel 相对短转移 2 2JMP @A+DPTR 相对长转移 1 2RET 子程序返回 1 2RET1 中断返回 1 2JZ rel 累加器为零转移 2 2JNZ rel 累加器非零转移 2 2CJNE A ,#data ,rel 累加器与立即数不等转移 3 2CJNE A ,direct ,rel 累加器与直接寻址单元不等转移 3 2 CJNE Rn,#data ,rel 寄存器与立即数不等转移 3 2CJNE @Ri ,#data,rel RAM单元与立即数不等转移 3 2 DJNZ Rn ,rel 寄存器减1不为零转移 2 2DJNZ direct ,rel 直接寻址单元减1不为零转移 3 2 NOP 空操作 1 1五、布尔操作类指令 (C表示进位标识)MOV C, bit 直接寻址位送C 2 1MOV bit, C C送直接寻址位 2 1CLR C C清零 1 1CLR bit 直接寻址位清零 2 1CPL C C取反 1 1CPL bit 直接寻址位取反 2 1SETB C C置位 1 1SETB bit 直接寻址位置位 2 1ANL C, bit C逻辑与直接寻址位 2 2ANL C, /bit C逻辑与直接寻址位的反 2 2ORL C, bit C逻辑或直接寻址位 2 2ORL C, /bit C逻辑或直接寻址位的反 2 2JC rel C为1转移 2 2JNC rel C为零转移 2 2JB bit,rel 直接寻址位为1转移 3 2JNB bit,rel 直接寻址为0转移。
附录 MCS-51单片机指令表
1 1 1 1 1 1
移位指令
RR RLC RRC
附录 MCS-51单片机指令表 MCS-51单片机指令表
指令类型 指令 代码 LJMP 无条件转移指令 AJMP SJMP JMP JZ JNZ CJNE 条件转移指令 CJNE CJNE CJNE DJNZ DJNZ 操作数 addr16 addr11 rel @A+DPTR rel rel A,#data, #data, rel A,direct, direct, rel Rn,#data, Rn,#data, rel 操作说明 PC←addr16 PC←PC+2, 10PC←PC+2,PC10-0←addr11 PC←PC+2, PC←PC+2,PC←PC+rel PC←+A+DPTR 若A=0,PC←PC+2+rel A=0, A≠0, 若A≠0,PC←PC+2 若A≠0,PC←PC+2+rel A≠0, A=0, 若A=0,PC←PC+2 不相等转移 不相等转移 不相等转移 字节数 3 2 2 1 2 2 3 3 3 3 2 3 机器周 期数 2 2 2 2 2 2 2 2 2 2 2 2
若Ac=1或A的低四位大于9, Ac=1或 的低四位大于9 A←A+06H Cy=1或 的高四位大于9 若Cy=1或A的高四位大于9 ,A←A+60H A×B=BA,形成标志 B=BA, A÷B=A…B,形成标志 B=A…B, A←A∩Rn A←A∩ (direct) A←A∩ (Ri) A←A∩#data (direct)←(direct) ∩ A (direct)←(direct) ∩ #data
附录 MCS-51单Hale Waihona Puke 机指令表 MCS-51单片机指令表
MCS-51单片机指令简表-2011
类 别 指令 代码 74 __ E8~EF E5 __ E6~E7 F8~FF 78~7F __ A8~AF __ F5 __ 88~8F __ 75 __ __ 86~87 __ 85 d2 d1 F6~F7 76~77 __ A6~A7 __ 90 __ __ E2~E3 F2~F3 E0 F0 93 83 C8~CF C6~C7 C5 __ D6~D7 C4 C0 __ D0 __ 28~2F 26~27 25 __ 24 __ 38~3F 36~37 34 __ 35 __ 98~9F 96~97 94 __ 95 __ 指令格式 MOV A ,#data MOV A, Rn , MOV A ,direct MOV A ,@ ,@Ri MOV Rn,A , MOV Rn,#data , MOV Rn ,direct MOV direct ,A MOV direct ,Rn MOV direct ,#data MOV direct ,@ ,@Ri MOV direct1,direct2 , MOV @Ri ,A MOV @Ri ,#data MOV @Ri ,direct MOV DPTR ,#data16 MOVX A ,@ ,@Ri MOVX @Ri ,A MOVX A ,@ ,@DPTR MOVX @DPTR ,A MOVC A ,@ ,@A+DPTR MOVC A ,@ ,@A+PC XCH A ,Rn XCH A ,@ ,@Ri XCH A ,direct XCHD A ,@ ,@Ri SWAP A PUSH POP ADD ADD ADD ADD ADDC ADDC ADDC ADDC SUBB SUBB SUBB SUBB direct direct A, Rn , A, @Ri , A, direct , A, #data , A, Rn , A, @Ri , A, #data , A, direct , A, Rn , A, @Ri , A, #data , A, direct , 功能简述 立即数送累加器 A 工作寄存器内容 内容送累加器 工作寄存器内容送累加器 A 直接寻址片内单元(含 内容送累加器 直接寻址片内单元 含 SFR)内容送累加器 A 内容 单元内容 内容送累加器 间接寻址片内 RAM 单元内容送累加器 A 的内容 累加器 A 的内容送工作寄存器 立即数送工作寄存器 直接寻址片内单元内容 内容送工作寄存器 直接寻址片内单元内容送工作寄存器 的内容送直接寻址片内单元 累加器 A 的内容送直接寻址片内单元 工作寄存器内容送直接寻址片内单元 寄存器内容 工作寄存器内容送直接寻址片内单元 立即数送直接寻址片内单元 间址片内 单元内容 内容送直接寻址片内单元 间址片内 RAM 单元内容送直接寻址片内单元 直接寻址片内单元 2 送片内单元 1 累加器的内容 的内容送间接寻址片内 累加器的内容送间接寻址片内 RAM 单元 立即数送间接寻址片内 RAM 单元 直接寻址片内单元内容 片内单元内容送间址片内 直接寻址片内单元内容送间址片内 RAM 单元 16 位立即数送 16 位寄存器 DPTR 外部数据存储器单元内容 数据存储器单元内容送累加器 外部数据存储器单元内容送累加器 A(P2、Ri 址) 、 内容送外部数据存储器单元 送外部数据存储器单元(P2、 累加器 A 内容送外部数据存储器单元 、Ri 址) 外部数据存储器单元内容 数据存储器单元内容送累加器 位址) 外部数据存储器单元内容送累加器 A(16 位址 的内容送外部数据存储器单元 送外部数据存储器单元(16 位址 位址) 累加器 A 的内容送外部数据存储器单元 查表读程存 读程存数据送累加器 查表读程存数据送累加器 A (A+DPTR 为地址) 查表读程存 读程存数据送累加器 值为地 查表读程存数据送累加器 A (A+ PC 值为地址) 与工作寄存器内容 内容交换 累加器 A 与工作寄存器内容交换 单元内容 内容交换 累加器 A 与间接寻址片内 RAM 单元内容交换 与直接寻址片内单元内容 内容交换 累加器 A 与直接寻址片内单元内容交换 单元之间 之间低 累加器 A 与间址片内 RAM 单元之间低 4 位交换 中的高 累加器 A 中的高 4 位与低 4 位交换 直接寻址片内单元的内容压入新的栈顶单元 直接寻址片内单元的内容压入新的栈顶单元 新的栈顶 SP←SP+1, (SP) ← , ( )←(direct) ) 弹出栈顶单元数据给 弹出栈顶单元数据给直接寻址片内单元 ,SP← (direct)←(SP) ) ) , ←SP-1 累加器加工作寄存器 结果存累加器 A 累加器加间址片内 RAM 单元 累加器加直接寻址片内单元 累加器加立即数 累加器加工作寄存器以及进位标志位 以及进位标志 累加器加工作寄存器以及进位标志位 单元以及进位标志位 以及进位标志 累加器加间址片内 RAM 单元以及进位标志位 累加器加立即数以及进位标志位 以及进位标志 累加器加立即数以及进位标志位 累加器加直接寻址片内单元以及进位标志位 以及进位标志 累加器加直接寻址片内单元以及进位标志位 累加器减工作寄存器以及进位标志位 以及进位标志 累加器减工作寄存器以及进位标志位 单元以及进位标志位 以及进位标志 累加器减间址片内 RAM 单元以及进位标志位 累加器减立即数以及进位标志位 以及进位标志 累加器减立即数以及进位标志位 累加器减直接寻址片内单元以及进位标志位 累加器减直接寻址片内单元以及进位标志位 以及进位标志 字节 机器 数 周期 2 1 1 1 2 1 1 1 1 1 2 1 2 2 2 1 2 2 3 2 2 2 3 2 1 1 2 1 2 2 3 2 1 2 1 2 1 2 1 2 1 2 1 2 1 1 1 1 2 1 1 1 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1
MCS-51经典指令表
经典MCS-51系列单片机指令表2006-11-20 09:34MCS-51系列单片机指令以A开头的指令有18条,分别为:ACALL addr11 ADD A,Rn ADD A,direct ADD A,@Ri ADD A,#data ADDC A,RnADDC A,direct ADDC A,@Ri ADDC A,#data AJMP addr11 ANL A,Rn ANL A,direct ANL A,@Ri ANL A,#data ANL direct,A ANL direct,#data ANL C,bit ANL C,/bit1、ACALL addr11指令名称:绝对调用指令指令代码:A10 A9 A9 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0指令功能:构造目的地址,进行子程序调用。
其方法是以指令提供的11位地址(al0~a0),取代PC的低11位,PC的高5位不变。
操作内容:PC←(PC)+2SP←(SP)+1(SP)←(PC)7~0SP←(SP)+1(SP)←(PC)15~8PC10~0←addrl0~0字节数: 2机器周期:2使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。
2、ADD A,Rn指令名称:寄存器加法指令指令代码:28H~2FH指令功能:累加器内容与寄存器内容相加操作内容:A←(A)+(Rn), n=0~7字节数: 1机器周期;1影响标志位:C,AC,OV3、ADD A,direct指令名称:直接寻址加法指令指令代码:25H指令功能:累加器内容与内部RAM单元或专用寄存器内容相加操作内容:A←(A)+(direct)字节数: 2机器周期:1影响标志位:C,AC,OV4、ADD A,@Ri ’指令名称:间接寻址加法指令指令代码:26H~27H指令功能:累加器内容与内部RAM低128单元内容相加操作内容:A←(A)+((Ri)), i=0,1字节数: 1机器周期:1影响标志位:C,AC,OV5、ADD A,#data指令名称:立即数加法指令指令代码:24H指令功能:累加器内容与立即数相加操作内容:A←(A)+data字节数: 2机器周期:1影响标志位:C,AC,OV6、ADDC A,Rn指令名称:寄存器带进位加法指令指令代码:38H~3FH指令功能:累加器内容、寄存器内容和进位位相加操作内容:A←(A)+(Rn)+(C), n=0~7字节数: 1机器周期:1影响标志位:C,AC,OV7、ADDC A,direct指令名称:直接寻址带进位加法指令指令代码:35H指令功能:累加器内容、内部RAM低128单元或专用寄存器内容与进位位加操作内容:A←(A)+(direct)+(C)字节数: 2机器周期:1影响标志位:C,AC,OV8、ADDC A,@Ri指令名称:间接寻址带进位加法指令指令代码:36H~37H指令功能:累加器内容、内部RAM低128单元内容及进位位相加操作内容:A←(A)+((Ri))+(C), i=0,1字节数: 1机器周期:1影响标志位:C,AC,OV9、ADDC A,#data指令名称:立即数带进位加法指令指令代码:34H指令功能:累加器内容、立即数及进位位相加操作内容:A←(A)+data+(C)字节数: 2机器周期:1影响标志位:C,AC,OV10、AJMP addr11指令名称:绝对转移指令指令代码:A10 A9 A8 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0指令功能:构造目的地址,实现程序转移。
51单片机指令速查
51单片机速查指令AC|辅助进位。
程序状态寄存器PSW的D6位;当进行加(或减)法运算时.如果低半字节D3向高半字节进(或借)位ACALL|■ACALL addr11 子程序调用;地址11位;2字节2周期。
ACC|累加器AADD|■ADD A,#data 加法指令;data+A→A ■ADD A,direct ■ADD A,Rn ■ADD A,@Ri ADDC|■ADDC A,#data 带进位位的加法指令;data+A+C→A ■ADDC A,direct ■ADDC A,Rn ■ADDC A,@RiAJMP|■AJMP addr11 短转移指令;地址为11位;addr11→PC;2字节2周期。
ANL|■ANL A,direct 逻辑与操作指令;A∧(direct)→A ■ANL direct,#data ■ANL A,#data ■ANL A,Rn ■ANL direct,A ■ANL A,@Ri ■ANL C,bit 位逻辑运算;C∧bit→C ■ANL C,/bit 把指定位取反后再和CY执行与操作。
B|寄存器B,主要用于乘法和除法运算,也可以当作一般寄存器。
C|进位位CY,是程序状态寄存器PSW的D7位。
CJNE|■CJNE A,direct rel 条件转移指令;如果A≠(direct)则转移,即PC+rel→PC。
■CJNE A,#data rel ■CJNE Rn,#data,rel ■CJNE @Ri,#data relCLR|■CLR A 清零指令;00H→A ■CLR C ■CLR bitCPL|■CPL A 取反指令;累加器A中的内容按位取反。
■CPL C 把C取反。
■3) CPL bit 指定位取反。
DA|■DA A 这是BCD码调整指令;单字节单周期。
DB|定义字节伪指令DEC|■DEC A 减1指令;A-1→A ■DEC direct ■DEC @Ri ■DEC RnDIV|■DIV AB 除法指令;用A中的无符号数除B中的无符号数,商放在A中,余数放在B中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
×
×
×
1
2
A6,A7
MOV@Ri,direct
direct →(Ri)
×
×
×
×
2
2
76,77
MOV@Ri,#data
data →(Ri)
×
×
×
×
2
2
90
MOVDPTR,#data16
data16 →DPTR
×
×
×
×
3
1
93
MOVC A,@A+DPTR
((A)+(DPTR))→A
×
×
×
×
1
2
83
MOVC A,@A+PC
√
×
×
×
2
1
46,47
ORLA,@Ri
(A)∨((Ri))→A
√
×
×
×
1
1
44
ORLA,#data
(A)∨data →A
√
×
×
×
2
1
42
ORLdirect,A
(direct)∨(A)→direct
×
×
×
×
2
1
43
ORLdirect,#data
(direct)∨data →direct
×
×
×
×
3
2
68~6F
√
×
×
×
1
1
18~1F
DECRn
(Rn)- 1→Rn
×
×
×
×
1
1
15
DECdirect
(direct)- 1 →direct
×
×
×
×
2
1
16,17
DEC@Ri
((Ri))- 1 →(Ri)
×
×
×
×
1
1
A4
MULAB
(A)·(B)→AB
√
×
×
√
1
4
84
DIVAB
(A)/(B)→AB
√
×
×
√
1
4
D4
DAA
MCS-51系列单片机指令速查表
算术运算指令(共24条)
机器码
助记符
功能
对标志影响
字节数
周期数
P
OV
AC
CY
28~2F
ADDA,Rn
(A)+(Rn)→A
√
√
√
√
1
1
25
ADDA,direct
(A)+(direct)→A
√
√
√
√
2
1
26,27
ADDA,@Ri
(A)+((Ri))→A
√
√
√
√
1
1
24
ADDA,#data
(A)+ data →A
√
√
√
√
2
1
38~3F
ADDCA,Rn
(A)+(Rn)+Cy →A
√
√
√
√
1
1
35
ADDCA,direct
(A)+(direct)+ Cy →A
√
√
√
√
2
1
36,37
ADDCA,@Ri
(A)+((Ri))+Cy →A
√
√
√
√
1
1
34
ADDCA,#data
(A)+ data +Cy →A
×
×
×
×
1
1
C4
SWAPA
A半字节交换
×
×
×
×
1
1
数据传送指令(共28条)
机器码
助记符
功能
对标志影响
字节数
周期数
P
OV
AC
CY
E8~EF
MOVA,Rn
(Rn)→A
√
×
×
×
1
1
E5
MOVA,direct
(direct)→A
√
×
×
×
2
1
E6,E7
MOVA,@Ri
((Ri))→A
√
×
×
×
1
1
74
MOVA,#data
√
×
×
×
1
1
D6,D7
XCHDA,@Ri
(A)0--3← →((Ri))0--3
√
√
√
√
2
1
98~9F
SUBBA,Rn
(A)-(Rn)-Cy →A
√
√
√
√
1
1
95
SUBBA,direct
(A)-(direct)-Cy →A
√
√
√
√
2
1
96,97
SUBBA,@Ri
(A)-((Ri))-Cy →A
√
√
√
√
1
1
94
SUBBA,#data
(A)- data - Cy →A
√
√
√
√
2
1
04
data →A
√
×
×
×
2
1
F8~FF
MOVRn,A
(A)→(Rn)
×
×
×
×
1
1
A8--AF
MOVRn,direct
(direct)→Rn
×
×
×
×
2
2
78~7F
MOVRn,#data
data →Rn
×
×
×
×
2
1
F5
MOVdirect,A
(A)→direct
×
×
×
×
2
1
88~8F
MOVdirect,Rn
INCA
(A)+ 1 →A
√
×
×
×
1
1
08~0F
INCRn
(Rn)+ 1→Rn
×
×
×
×
1
1
05
INCdirect
(direct)+ 1 →direct
×
×
×
×
2
1
06,07
INC@Ri
((Ri))+ 1 →(Ri)
×
×
×
×
1
1
A3
INCDPTR
(DPTR)+ 1 →DPTR
×
×
×
×
1
2
14
DECA
(A)- 1 →A
(SP)+1→SP
(direct)→SP
×
×
×
×
2
2
D0
POPdirect
((direct))→direct (SP)-1→SP
×
×
×
×
2
2
C8~8F
XCHA,Rn
(A)← →(Rn)
√
×
×
×
1
1
C5
XCHA,direct
(A)← →(direct)
√
×
×
×
2
1
C6,C7
XCHA,@Ri
(A)← →((Ri))
((A)+(PC))→A
×
×
×
×
1
2
E2,E3
MOVX A,@Ri
((Ri)+P2) →A
√
×
×
×
1
2
E0
MOVX A,@DPTR
((DPTR)) →A
√
×
×
×
1
2
F2,F3
MOVX@Ri,A
(A)→(Ri)+(P2)
√
×
×
×
1
2
F0
MOV@DPTR,A
(A)→(DPTR)
×
×
×
×
1
2
C0
PUSHdirect
×
×
2
1
63
XRLdirect,#data
(direct)⊕data →direct
×
×
×
×
3
2
E4
CLRA
0 →A
√
×
×
×
1
1
F4
CPLA
/(A)→A
×
×
×
×
1
1
23
RLA
A循环左移一位
×
×
×
×
1
1
33
RLCAA带进位循环左移来自位×××
×
1
1
03
RRA
A循环右移一位
×
×
×
×
1
1
13
RRCA
A带进位循环右移一位
(A)∧data →A
√
×
×
×
2
1
52
ANLdirect,A
(direct)∧(A)→direct
×
×
×
×
2
1
53
ANLdirect,#data
(direct)∧data →direct