单片机指令速查表
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
单片机指令表格(全面)

单片机指令以A开头的指令有18条,分别为:1、ACALL addr11指令名称:绝对调用指令指令代码:A10 A9 A8 10001 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,OV 7、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指令功能:构造目的地址,实现程序转移。
单片机汇编语言指令查表

目录表1 寻址方式与相应的寻址空间 (2)1.1数据传送指令MOV (2)1.2程序存储器取数据指令MOVX,MOVC (3)1.3 数据交换指令XCH,XCHD,SWAP (3)1.4 逻辑运算指令ANL,ORL(按位进行) (4)续表1.4 逻辑运算指令XRL CLR CPL RL RLC RR RRC(按位进行) (5)1.5 控制转移指令LJMP AJMP SJMP JMP JZ JNZ CJNE (6)续表1.5 控制转移指令DJNZ LCALL ACALL RET RETI NOP (7)1.6 布尔处理(位操作)指令CLR SETB CPL ANL ORL (8)续表1.6 布尔处理(位操作)指令JC JNC JB JNB JBC (9)1.7堆栈操作指令PUSH POP (10)2.MCS-51系列单片机算术运算指令表ADD ADDC SUBB INC DEC MUL DIV DA (10)表1 寻址方式与相应的寻址空间1.1数据传送指令MOV方式 利用的变量 使用的空间寄存器 R0∽R7,A ,B ,CY ,DPTR直接寻址 direct片内RAM 低128字节特殊功能寄存器SFR寄存器间址 @Ro ,@R1 SP @R0,@R1,@DPTR片内RAM 片外RAM立即数 #data程序存储器 基址加变址 @A+PC @A+DPTR程序存储器 相对寻址 PC+rel程序存储器位寻址bit片内RAM 的20H ∽2FH 部分SFR目的操作数汇编指令机器码功能字节数 机器周期A 累加器 立即数送AMOV A ,#data 74H data data 传至A 2 1 内部RAM 或SFR 内容送AMOV A ,direct E5H direct(direct)传至A2 1 寄存器内容送AMOV A ,Rn (n=0∽7) E8H ∽EFH 11101rrr (Rn)传至A 1 1 内部RAM 内容送A MOV A ,@Ri (i=0,1) 1110011i((Ri))传至A 1 1 Direct内部RAM 或SFR立即数送内部RAM 或SFR MOV direct ,#data 75H direct data data 传至direct 3 2 内部RAM 和SFR 直接直接传送 MOV direct ,direct 85H direct direct (direct)传至direct 3 2 累加器内容送内部RAM 或SFR MOV direct ,AF5H direct(A)传至direct 2 1 寄存器内容送内部RAM 或SFR MOV direct ,Rn (n=0∽7) 10001rrr direct (Rn)传至direct 2 2 内部RAM 内容送内部RAM 或SFRMOV direct ,@Ri (i=0,1) 1000011i direct ((Ri))传至direct 2 2 Rn 寄存器立即数送寄存器 MOV Rn,#data (n=0∽7) 01111rrr data data 传至Rn 2 1 内部RAM 或SFR 内容送寄存器MOV Rn,direct (n=0∽7) 10101rrr direct (direct)传至Rn 2 2 累加器内容送寄存器MOV Rn,A (n=0∽7) 11111rrr (A)传至Rn 1 2 @Ri 内部RAM立即数送内部RAMMOV @Ri,#data (i=0,1) 0111011i data data 传至(Ri) 2 1 内部RAM 或SFR 内容送内部RAMMOV @Ri,direct (i=0,1) 1010011i direct (direct)传至(Ri) 2 2 累加器内容送内部RAM MOV @Ri,A (i=0,1) 1111011i(A)传至(Ri) 1 1 DPTR 16位立即数传送指令MOV DPTR,#data1690H dataH dataLdata16传至DPTR321.2程序存储器取数据指令MOVX ,MOVC1.3 数据交换指令XCH ,XCHD ,SWAP目的操作数汇编指令机器码功能字节数 机器周期A 外部数据存储器内容送A MOVX A ,@Ri (i=0,1) E2H E3H ((Ri))传至A 1 2 A 外部数据存储器内容送A MOVX A ,@DPTR E0H ((DPTR))传至A 1 2 @Ri 累加器内容送外部数据存储器 MOVX @Ri,A (i=0,1) F2H ,F3H A 传至(Ri) 1 2 DPTR 累加器内容送外部数据存储器 MOVX @DPTR,A F0H A 传至(DPTR) 1 2 A 以PC 为基址寄存器加变址寻址 MOVC A,@A+PC 83H ((A)+(PC))传至A 1 2 A以DPTR 为基址寄存器加变址寻址MOVC A,@A+DPTR93H((A)+(DPTR))传至A12目的操作数指令机器码 功能字节数 机器周期 A 内部RAM 或SFR 内容与累加器内容互换 XCH A,directC5H direct (A)←(direct) 2 1 A 寄存器内容与累加器内容互换 XCH A,Rn (n=1-7) 11001rrr (A)←(Rn) 1 1 A 内部RAM 内容与累加器内容互换XCH A,@Ri (i=0,1) 1100011i (A)←((Ri))1 1 A 内部RAM 低4位内容与累加器低4位内容互换XCHD A,@Ri (i=0,1) 1101011i (A)0∽3←((Ri))0∽3 1 1 A累加器高4位与低4位交换SWAP AC4H(A)0∽3←(A)4∽7111.4 逻辑运算指令ANL,ORL(按位进行)目的操作数指令机器码功能字节数机器周期逻辑与ANLA内容∧立即数ANL A ,#data54H A←(A)∧#data 2 1 A内容∧内部RAM或SFR当direct为端口地址P0∽P3时,操作数由端口锁存器读入。
51单片机指令表汇总

51单片机指令表汇总51 单片机是一种广泛应用于电子工程和嵌入式系统开发的微控制器。
要熟练掌握 51 单片机的编程,了解其指令表是至关重要的。
下面就为大家汇总一下 51 单片机的常见指令。
数据传送类指令MOV 指令:这是最基本的数据传送指令,用于在寄存器之间、寄存器与存储器之间传送数据。
例如,“MOV A, 50H”就是将立即数 50H传送到累加器 A 中。
MOVX 指令:用于在片外数据存储器和累加器 A 之间进行数据传送。
比如“MOVX A, @DPTR”,将片外数据存储器中由数据指针 DPTR 所指定单元的内容传送到累加器 A 中。
MOVC 指令:用于访问程序存储器中的数据表格。
“MOVC A, @A+DPTR”是常见的用法。
算术运算类指令ADD 指令:实现加法运算。
像“ADD A, R0”就是将累加器 A 的内容和寄存器 R0 的内容相加,结果存放在累加器 A 中。
ADDC 指令:带进位加法指令。
考虑了上一次运算产生的进位标志。
SUBB 指令:用于减法运算,并且会考虑借位标志。
逻辑运算类指令ANL 指令:进行逻辑与操作。
例如“ANL A, R0”,将累加器 A 和寄存器 R0 的内容进行逻辑与运算,结果存放在累加器 A 中。
ORL 指令:执行逻辑或操作。
XRL 指令:实现逻辑异或运算。
控制转移类指令JC 指令:若进位标志为 1 则跳转。
JZ 指令:若累加器 A 的内容为 0 则跳转。
LJMP 指令:长跳转指令,可以跳转到 64KB 程序存储器空间的任意位置。
位操作类指令SETB 指令:将指定的位设置为 1。
例如“SETB P10”,将 P1 端口的第 0 位置 1。
CLR 指令:把指定的位清零。
这些只是 51 单片机指令的一部分,实际应用中还有更多的指令和组合使用方式。
在编程时,合理选择和运用这些指令能够实现各种复杂的功能。
比如,通过数据传送指令来初始化变量和读取外部数据;利用算术运算指令进行数值计算;借助逻辑运算指令处理逻辑关系;使用控制转移指令实现程序的分支和循环;运用位操作指令控制单个引脚的状态。
单片机的指令表(最全)

单片机的指令表(最全)单片机的指令表(最全)在单片机编程中,指令表是编程过程中不可或缺的重要参考资料。
它包含了单片机的指令集,能够帮助程序员清晰地了解和使用不同的指令,以实现特定的功能。
本文将为您详细介绍单片机的指令表,包括指令的分类、常用指令的功能及应用示例。
1. 指令表的分类单片机的指令表根据指令的功能和执行方式进行分类。
常见的分类方式有:数据传送指令、算数运算指令、逻辑运算指令、条件跳转指令和无条件跳转指令等。
1.1 数据传送指令数据传送指令用于在寄存器之间传送数据,常见的指令有MOV、LDA、STA等。
例如,MOV指令可以将数据从一个寄存器传送到另一个寄存器。
1.2 算数运算指令算数运算指令用于进行加法、减法、乘法和除法等数值计算操作,常见的指令有ADD、SUB、MUL、DIV等。
例如,ADD指令可以将两个寄存器中的数据相加,并将结果保存在目标寄存器中。
1.3 逻辑运算指令逻辑运算指令用于进行逻辑运算,包括与、或、非、异或等操作,常见的指令有AND、OR、NOT、XOR等。
例如,AND指令可以对两个寄存器中的数据进行与运算,并将结果保存在目标寄存器中。
1.4 条件跳转指令条件跳转指令用于根据特定条件改变程序的执行流程,常见的指令有JZ、JNZ、JC、JNC等。
例如,JZ指令可以在累加器为零时跳转到指定的地址。
1.5 无条件跳转指令无条件跳转指令用于无条件地改变程序的执行流程,常见的指令有JMP、CALL、RET等。
例如,JMP指令可以跳转到指定的地址执行程序。
2. 常用指令的功能及应用示例2.1 MOV指令功能:将一个寄存器或内存的数据传送到另一个寄存器或内存。
示例:MOV A, B ; 将寄存器B的值传送给AMOV R1, #10 ; 将立即数10传送给寄存器R12.2 ADD指令功能:将两个寄存器或内存中的数据相加,并将结果保存在目标寄存器或内存中。
示例:ADD A, B ; 将A和B的值相加,并将结果保存在A中ADD R3, #5 ; 将寄存器R3的值加上立即数52.3 AND指令功能:对两个寄存器或内存中的数据进行逻辑与运算,并将结果保存在目标寄存器或内存中。
附2《unSP指令速查表》SPCE061A单片机教材书.pdf

指令子集语法
ALU-LSL
指令 周期
Rd+=Rs LSL nn{,Carry}
Rd-=Rs LSL nn{,Carry}
3 /8
CMP Rd, Rs LSL nn
Rd = - Rs LSL nn
Rd &= Rs LSL nn
Rd |= Rs LSL nn 3 /8
Rd ^= Rs LSL nn
TEST Rd, Rs LSL nn
6 /8
[A6]
√
√
-
-
双字
Rd = Rs | [A16]
9 /11
[A16]
Rd |= Rs
3 /8
R
Rd |= {D:}[Rs]
单字
Rd |= {D:}[++Rs]
7 /9
[R]
Rd |= {D:}[Rs--]
Rd |= {D:}[Rs++]
指令语法
指令 长度
ALU-ROL
指令子集语法
指令 周期
3 /8
CMP Rd, Rs LSR nn
Rd = - Rs LSR nn
Rd &= Rs LSR nn
Rd |= Rs LSR nn 3 /8
Rd ^= Rs LSR nn
TEST Rd, Rs LSR nn
Rd = Rs LSR nn
寻址 方式
R
R
标志位反应
N
Z
S
C
√
√
√
√
√
√
-
-
指令语法
指令 长度
Rd |= Rs ROL nn
nn
Rd ^= Rs ROL nn
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中。
单片机指令查询

FORMAT NAME CMD_TYPEACALL addr11绝对调用指令控制转移类指令ADD A,Ra寄存器加法指令算术运算类指令ADD A,direct直接寻址加法指令算术运算类指令ADD A,@Ri间接寻址加法指令算术运算类指令ADD A,#data立即数加法指令算术运算类指令ADDC A,Rn寄存器带进位加法指令算术运算类指令ADDC 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,/bit位逻辑与指令布尔变量操作类指令CJNE A,direct,rel数值比较转移指令控制转移类指令CJNE A,#data,rel数值比较转移指令控制转移类指令CJNE Rn,#data,rel数值比较转移指令控制转移类指令CJNE @Ri,#data,rel数值比较转移指令控制转移类指令CLR A累加器清0指令布尔变量操作类指令CLR C进位标志清0指令布尔变量操作类指令CLR bit直接寻址位清0指令布尔变量操作类指令CPL A累加器取反指令布尔变量操作类指令CPL C进位标志取反指令布尔变量操作类指令CPL bit直接寻址位取反指令布尔变量操作类指令DA A十进制调整指令算术运算类指令DEC A累加器内容减1指令算术运算类指令DEC Rn寄存器减1指令算术运算类指令DEC direct直接寻址减1指令算术运算类指令DEC @Ri间接寻址减1指令算术运算类指令DIV AB无符号数除法指令算术运算类指令DJNZ Rn,rel寄存器减1条件转移指令控制转移类指令DJNZ direct,rel直接寻址单元减1条件转移指令控制转移类指令INC A累加器加1指令算术运算类指令INC Rn寄存器加1指令算术运算类指令INC direct直接寻址单元加1指令算术运算类指令INC @Ri间接寻址单元加1指令算术运算类指令INC DPTR16位数据指针加1指令算术运算类指令JB bit,rel位条件转移指令布尔变量操作类指令JBC bit,rel位条件转移清0指令布尔变量操作类指令JC rel累加位条件转移指令布尔变量操作类指令JMP @A+DPTR无条件间接转移指令控制转移类指令JNB bit rel位条件转移指令布尔变量操作类指令JNC rel累加位条件转移指令布尔变量操作类指令JNZ rel判0转移指令控制转移类指令JZ rel判0转移指令控制转移类指令LCALL addr16长调用指令控制转移类指令LJMP addr16长转移指令控制转移类指令MOV A,Rn寄存器数据传送指令数据传送类指令MOV A,direct直接地址数据传送指令数据传送类指令MOV A,@Ri间接寻址数据传送指令数据传送类指令MOV A,#data立即数据传送指令数据传送类指令MOV Rn,A累加器数据传送指令数据传送类指令MOV Rn,direct直接寻址数据传送指令数据传送类指令MOV Rn,#data立即数据传送指令数据传送类指令MOV direct,A累加器数据传送指令数据传送类指令MOV direct,Rn寄存器数据传送指令数据传送类指令MOV direct2,direct1`直接寻址数据传送指令数据传送类指令MOV direct,@Ri间接寻址数据传送指令数据传送类指令MOV direct,#data立即数传送指令数据传送类指令MOV @Ri,A累加器数据传送指令数据传送类指令MOV @Ri,direct直接寻址数据传送指令数据传送类指令MOV @Ri,data立即数传送指令数据传送类指令MOV C,bit位数据传送指令布尔变量操作类指令MOV bit,C累加位数据传送指令布尔变量操作类指令MOV DPTR,#data16十六位数据传送指令数据传送类指令MOVC A,@A+DPTR程序存储器读指令数据传送类指令MOVC A,@A+PC程序存储器读指令数据传送类指令MOVX A,@Ri寄存器间接寻址外部RAM读指令数据传送类指令MOVX A,@DPTR数据指针间接寻址外部RAM读指令数据传送类指令MOVX @Ri,A寄存器间接寻址外部RAM写指令数据传送类指令MOVX @DPTR,A数据指针间接寻址外部RAM写指令数据传送类指令MUL AB乘法指令算术运算类指令NOP空操作指令控制转移类指令ORL A,Rn逻辑或操作指令逻辑运算及移位类指令ORL A,direct逻辑或操作指令逻辑运算及移位类指令ORL A,@Ri逻辑或操作指令逻辑运算及移位类指令ORL A,#data逻辑或操作指令逻辑运算及移位类指令ORL direct,A逻辑或操作指令逻辑运算及移位类指令ORL direct,#data逻辑或操作指令逻辑运算及移位类指令ORL C,bit位逻辑或操作指令逻辑运算及移位类指令ORL C,/bit位反逻辑或操作指令逻辑运算及移位类指令POP direct出栈指令数据传送类指令PUSH direct进栈指令数据传送类指令RET子程序返回指令控制转移类指令RETI中断返回指令控制转移类指令RL A循环左移指令逻辑运算及移位类指令RLC A带进位循环左移指令逻辑运算及移位类指令RR A循环右移指令逻辑运算及移位类指令RRC A带进位循环右移指令逻辑运算及移位类指令SETB C进位标志置位指令布尔变量操作类指令SETB bit直接寻址位置位指令布尔变量操作类指令SJMP短转移指令控制转移类指令SUBB A,Rn寄存器寻址带进位位减法指令算术运算类指令SUBB A,direct直接寻址带进位减法指令算术运算类指令SUBB A,@Ri间接寻址带进位减法指令算术运算类指令SUBB A,#data立即数带进位减法指令算术运算类指令SWAP A累加器高低半字节交换指令数据传送类指令XCH A,Rn寄存器寻址字节交换指令数据传送类指令XCH A,direct直接寻址字节交换指令数据传送类指令XCH A,@Ri间接寻址字节交换指令数据传送类指令XCHD A,@Ri半字节交换指令数据传送类指令XRL A,Rn逻辑异或操作指令逻辑运算及移位类指令XRL A,direct逻辑异或操作指令逻辑运算及移位类指令XRL A,@Ri逻辑异或操作指令逻辑运算及移位类指令XRL A,#data逻辑异或操作指令逻辑运算及移位类指令XRL direct,A逻辑异或操作指令逻辑运算及移位类指令XRL direct,#data逻辑异或操作指令逻辑运算及移位类指令[<标号:>]ORG <地址>汇编起始地址命令伪操作类指令[<标号:>]END [<表达式>]汇编终止命令伪操作类指令[<标号:>]DB <8位数表>定义数据字节命令伪操作类指令[<标号:>]DW <16位数表>定义数据字命令伪操作类指令[<标号:>]DS <16位数表>定义存储区命令伪操作类指令<字符名称> BIT <位地址>位定义命令伪操作类指令FUNCTION其方法是以指令提供11位地址(a10~a0),取代PC的低11位,PC的高5位不变。
完整word版单片机指令表最全

单片机指令以A开头的指令有18条,分别为:7、ADDC A,direct指令名称:直接寻址带进位加法指令指令代码:35H指令功能:累加器内容、内部RAM低128单元或专用寄存器内1、ACALL addr11容与进位位加指令名称:绝对调用指令操作内容:A←(A)+(direct)+(C)指令代码:A10 A9 A8 10001 A7 A6 A5 A4 A3 A2 A1 A0字节数:2 指令功能:构造目的地址,进行子程序调用。
其方法是以指令提机器周期:1影响标志位:C,11供的11位地址(al0~a0),取代PC的低位,PC的高5位不变。
AC,OV操作内容:SP←(SP)+1PC←(PC)+2 8、ADDC A,@RiSP←(SP)+10 ~(SP)←(PC)7指令名称:间接寻址带进位加法指令指令代码:36H~37H0 ~~0←addrl0 (SP)←(PC)15~8 PC10指令功能:累加器内容, 内部RAM低128单元内容及进位位相加操作内容:A←(A)+((Ri))+(C)2 字节数:机器周期:2,i=0,1字节数:1 机器周期:位,使用说明:由于指令只给出子程序入口地址的低11因此调用1影响标志位:C,AC,OV范围是2KB。
9、ADDC A,、2ADD A,Rn#data指令名称:立即数带进位加法指令2FH指令代码:28H~指令代码:34H指令名称:寄存器加法指令指令功能:累加器内容、立即数及进位位相加指令功能:累加器内容与寄存器内容相加操作内容:A←(A)+(Rn)操作内容:,nA←(A)+data+(C) =0~7字节数:机器周期;12 机器周期:1字节数:1影响标志位:C影响标志位:,AC,C,AC,OVOV10、AJMP addr11 ADD A3、,direct指令名称:绝对转移指令指令代码:25H指令名称:直接寻址加法指令指令代码:RAM指令功能:累加器内容与内部单元或专用寄存器内容相加A10 A9 A8 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0 指令功能:构造目的地址,实现程序转移。
AVR单片机指令快速记忆方法及速查表

STS k,,Rr
数据送 SRAM
BRCS k
C=1 置位转
LPM
从程序区取数
基本指令
程序状态字 SREG
IN Rd,P
从 I/O 口取数
派生出来的指令
765 43210
OUT P, Rdr 存数 I/O 口
I THSVNZC
PUSH Rr
压栈
POP Rd,
出栈
AVR 单片机指令系统
3
AVR 单片机指令系统简介
AVR 单片机指令系统
2
AVR 器件(指令速查表) 118 条指令器件
AT90S2313/2323/2343/2333 ,AT90S4414/4433/4434/8515,AT90S8534/8535
算术和逻辑指令(22)
BRCC k C=0 清零转
位指令和位测试指令(31)
ADD Rd,Rr
BRMI,BRPL;BREQ,BRNE;BRCS,BRCC;BRSH,BRLO; 位 I/O 操作指令: (2)SBI,CBI (S 置 1,C 清 0) 状态寄存器指令: (2)BSET,BCLR(状态字为 I,T,H,S,V,N,Z,C) 位操作及其他 派生指令:(16) BSET -- SEI,SET,SEH,SES SEV,SEN,SEZ,SEC (SE 置 1 某位) (31) BCLR -- CLI,CLT,CLH,CLS,CLV,CLN,CLZ,CLC (CL 清 0 某位) 位传送: (2) BST,BLD, 移位指令: (6) LSL,LSR,ASR,ROL,ROR,SWAP(LS 右移,RO 左移,AS 算术右移,R 寄存器) 其他指令: (3) NOP,SLEEP,WDR
AVR 单片机指令系统
完整word版,51单片机指令表

此表主要是为了方便大家查阅每条指令的作用,写法以及字节数和周期数,建议大家保存为书签。
助记符指令说明字节数周期数(数据传递类指令)MOV A,Rn 寄存器传送到累加器 1 1MOV A,direct 直接地址传送到累加器 2 1MOV A,@Ri 累加器传送到外部RAM(8 地址) 1 1MOV A,#data 立即数传送到累加器 2 1MOV Rn,A 累加器传送到寄存器 1 1MOV Rn,direct 直接地址传送到寄存器 2 2MOV Rn,#data 累加器传送到直接地址 2 1MOV direct,Rn 寄存器传送到直接地址 2 1MOV direct,direct 直接地址传送到直接地址 3 2MOV direct,A 累加器传送到直接地址 2 1MOV direct,@Ri 间接RAM 传送到直接地址 2 2MOV direct,#data 立即数传送到直接地址 3 2MOV @Ri,A 直接地址传送到直接地址 1 2MOV @Ri,direct 直接地址传送到间接RAM 2 1MOV @Ri,#data 立即数传送到间接RAM 2 2MOV DPTR,#data16 16 位常数加载到数据指针 3 1 MOVC A,@A+DPTR 代码字节传送到累加器 1 2 MOVC A,@A+PC 代码字节传送到累加器 1 2 MOVX A,@Ri 外部RAM(8 地址)传送到累加器 1 2 MOVX A,@DPTR 外部RAM(16 地址)传送到累加器 1 2 MOVX @Ri,A 累加器传送到外部RAM(8 地址) 1 2 MOVX @DPTR,A 累加器传送到外部RAM(16 地址) 1 2 PUSH direct 直接地址压入堆栈 2 2POP direct 直接地址弹出堆栈 2 2XCH A,Rn 寄存器和累加器交换 1 1XCH A, direct 直接地址和累加器交换 2 1 XCH A, @Ri 间接RAM 和累加器交换 1 1 XCHD A, @Ri 间接RAM 和累加器交换低4 位字节 1 1(算术运算类指令)INC A 累加器加1 1 1 INC Rn 寄存器加1 1 1 INC direct 直接地址加1 2 1 INC @Ri 间接RAM 加1 1 1 INC DPTR 数据指针加1 1 2 DEC A 累加器减1 1 1 DEC Rn 寄存器减1 1 1 DEC direct 直接地址减1 2 2 DEC @Ri 间接RAM 减1 1 1 MUL AB 累加器和B 寄存器相乘 1 4 DIV AB 累加器除以B 寄存器 1 4 DA A 累加器十进制调整 1 1 ADD A,Rn 寄存器与累加器求和 1 1 ADD A,direct 直接地址与累加器求和 2 1 ADD A,@Ri 间接RAM 与累加器求和 1 1 ADD A,#data 立即数与累加器求和 2 1 ADDC A,Rn 寄存器与累加器求和(带进位) 1 1 ADDC A,direct 直接地址与累加器求和(带进位) 2 1 ADDC A,@Ri 间接RAM 与累加器求和(带进位) 1 1 ADDC A,#data 立即数与累加器求和(带进位) 2 1 SUBB A,Rn 累加器减去寄存器(带借位) 1 1 SUBB A,direct 累加器减去直接地址(带借位) 2 1 SUBB A,@Ri 累加器减去间接RAM(带借位) 1 1 SUBB A,#data 累加器减去立即数(带借位) 2 1(逻辑运算类指令)ANL A,Rn 寄存器“与”到累加器 1 1 ANL A,direct 直接地址“与”到累加器 2 1 ANL A,@Ri 间接RAM“与”到累加器 1 1 ANL A,#data 立即数“与”到累加器 2 1 ANL direct,A 累加器“与”到直接地址 2 1 ANL direct, #data 立即数“与”到直接地址 3 2 ORL A,Rn 寄存器“或”到累加器 1 2 ORL A,direct 直接地址“或”到累加器 2 1 ORL A,@Ri 间接RAM“或”到累加器 1 1 ORL A,#data 立即数“或”到累加器 2 1 ORL direct,A 累加器“或”到直接地址 2 1 ORL direct, #data 立即数“或”到直接地址 3 1 XRL A,Rn 寄存器“异或”到累加器 1 2 XRL A,direct 直接地址“异或”到累加器 2 1 XRL A,@Ri 间接RAM“异或”到累加器 1 1 XRL A,#data 立即数“异或”到累加器 2 1 XRL direct,A 累加器“异或”到直接地址 2 1 XRL direct, #data 立即数“异或”到直接地址 3 1 CLR A 累加器清零 1 2 CPL A 累加器求反 1 1 RL A 累加器循环左移 1 1 RLC A 带进位累加器循环左移 1 1 RR A 累加器循环右移 1 1 RRC A 带进位累加器循环右移 1 1 SWAP A 累加器高、低4 位交换 1 1(控制转移类指令)JMP @A+DPTR 相对DPTR 的无条件间接转移 1 2 JZ rel 累加器为0 则转移 2 2 JNZ rel 累加器为1 则转移 2 2CJNE A,direct,rel 比较直接地址和累加器,不相等转移 3 2 CJNE A,#data,rel 比较立即数和累加器,不相等转移 3 2 CJNE Rn,#data,rel 比较寄存器和立即数,不相等转移 2 2 CJNE @Ri,#data,rel 比较立即数和间接RAM,不相等转移 3 2 DJNZ Rn,rel 寄存器减1,不为0 则转移 3 2 DJNZ direct,rel 直接地址减1,不为0 则转移 3 2 NOP 空操作,用于短暂延时 1 1 ACALL add11 绝对调用子程序 2 2 LCALL add16 长调用子程序 3 2 RET 从子程序返回 1 2 RETI 从中断服务子程序返回 1 2 AJMP add11 无条件绝对转移 2 2 LJMP add16 无条件长转移 3 2 SJMP rel 无条件相对转移 2 2(布尔指令)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 直接寻址位“与”到进位位 2 2 ANL C,/bit 直接寻址位的反码“与”到进位位 2 2 ORL C,bit 直接寻址位“或”到进位位 2 2 ORL C,/bit 直接寻址位的反码“或”到进位位 2 2 MOV C,bit 直接寻址位传送到进位位 2 1 MOV bit, C 进位位位传送到直接寻址 2 2 JC rel 如果进位位为1 则转移 2 2 JNC rel 如果进位位为0 则转移 2 2JB bit,rel 如果直接寻址位为1 则转移 3 2 JNB bit,rel 如果直接寻址位为0 则转移 3 2 JBC bit,rel 直接寻址位为1 则转移并清除该位 2 2(伪指令)ORG 指明程序的开始位置DB 定义数据表DW 定义16 位的地址表EQU 给一个表达式或一个字符串起名DATA 给一个8 位的内部RAM 起名XDATA 给一个8 位的外部RAM 起名BIT 给一个可位寻址的位单元起名END 指出源程序到此为止(指令中的符号标识)Rn 工作寄存器R0-R7Ri 工作寄存器R0 和R1@Ri 间接寻址的8 位RAM 单元地址(00H-FFH)#data8 8 位常数#data16 16 位常数addr16 16 位目标地址,能转移或调用到64KROM 的任何地方addr11 11 位目标地址,在下条指令的2K 范围内转移或调用Rel 8 位偏移量,用于SJMP 和所有条件转移指令,范围-128~+127 Bit 片内RAM 中的可寻址位和SFR 的可寻址位Direct 直接地址,范围片内RAM 单元(00H-7FH)和80H-FFH$ 指本条指令的起始位置。
51内核单片机 111条 指令查询 大全

13 INC A 累加器加1
14 INC Rn 寄存器加1
15 INC direct 直接地址单元加1
16 INC @Ri 间接RAM 单元加1
17 DEC A 累加器减1
18 DEC Rn 寄存器减1 1 12
8 ANL C,bit 进位位和直接地址位的反码相“与”
9 ORL C,bit 进位位和直接地址位相“或”
10 ORL C,bit 进位位和直接地址位的反码相“或”
11 MOV C,bit 直接地址位送入进位位
12 MOV bit,C 进位位送入直接地址位
19 DEC direct 直接地址单元减1
20 DEC @Rj 间接RAM 单元减 1
21 INC DPTR 地址寄存器DPTR 加 1
22 MUL AB A 乘以B,结果放在A
23 DIV AB A 除以B,结果放在A
24 DA A 累加器十进制调整
15 DJNZ Rn,rel 寄存器减1,非零转移
16 DJNZ direct,rel 直接地址单元减1,非零转移
17 NOP 空操作
记住指令表是学好单片机的第一步,也是重要一步.
3 RET 子程序返回
4 RETI 中数返回
5 AJMP addr11 绝对(短)转移
6 LJMP addr16 长转移
7 SJMP rel 相对转移
8 JMP @A+DPTR 相对于DPTR 的间接转移
9 JZ rel 累加器为零转移
16 MOV DRTR,#dat16 16 位立即数送入地址寄存器
17 MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器
ARM指令快速查询

500附录A ARM指令集、ARM寻址方式和Thumb指令集速查表表A-1 ARM指令速查表表中符号说明表中符号说明{cond} 参见A-2 条件码字段<a_mode2> 参见A-2 寻址方式2<oprnd2> 参见A-2 第二操作码<a_mode2P> 参见A-2 寻址方式2(只有Post-indexed 方式)<fields> 参见A-2 PSR字段<a_mode3> 参见A-2 寻址方式3{S} 更新标志位<a_mode4L> 参见A-2 寻址方式4(Block load or Stack pop )C*,V* Flag is unpredicatable after these instructions in Architechure v4 and<a_mode4S> 参见A-2 寻址方式4(Block store or Stack push )earlier<a_mode5> 参见A-2 寻址方式5Q Sticky flag. Always updates on overflow( no S option) . Read and resetusing MRS and MSRx,y B:register[15:0],T:register[31:16] <reglist> A comma-separated list of registers , enclosed in braces({and})<immed_8r> A 32-bit constant , formed by right-rotating an 8-bit value by an even{!} Updates base register after data transfer if ! presentnumber of bits<immed_8*4> A 10-bit constant , formed by shift-rotating an 8-bit value by two bits §参见A-2 ARM架构版本号功能§汇编指令S 更新Q 操作注释Move MOV {cond } {S} Rd , <Oprnd2> N Z C Rd:=Oprnd2 传送NOT MVN {cond } {S} Rd , <Oprnd2> N Z C Rd:=0xFFFFFFFF EOR Oprnd2SPSR至寄存器 3 MRS {cond } Rd , SPSR Rd:=SPSR500CPSR至寄存器 3 MRS {cond } Rd , CPSR Rd:=CPSR寄存器至SPSR 3 MSR {cond } SPSR_<fields>, Rm SPSR:=Rm(selected bytes only)寄存器至CPSR 3 MSR {cond } CPSR_<fields>, Rm CPSR:=Rm(selected bytes only)立即数至SPSR 3 MSR {cond } SPSR_<fields>, #<immed_8r> SPSR:=immed_8r(selected bytes only)立即数至CPSR 3 MSR {cond } CPSR_<fields>, #<immed_8r> CPSR:= immed_8r(selected bytes only)加法ADD {cond } {S} Rd , Rn , <Oprand2> N Z C V Rd:=Rn + Oprnd2带进位ADC {cond } {S} Rd , Rn , <Oprand2> N Z C V Rd:=Rn + Oprnd2 + Carry饱和加5E QADD {cond } Rd , Rm , Rn Q Rd:=SA T( Rm + Rn ) No shift/rotate 饱和乘2加5E QDADD {cond } Rd , Rm , Rn Q Rd:=SA T( Rm + SA T(Rn*2) ) No shift/rotate 减法SUB {cond } {S} Rd , Rn , <Oprand2> N Z C V Rd:=Rn —Oprnd2 带进位SBC {cond } {S} Rd , Rn , <Oprand2> N Z C V Rd:=Rn —Oprnd2 —NOT(Carry)反减RSB {cond } {S} Rd , Rn , <Oprand2> N Z C V Rd:= Oprnd2 —Rn带进位反减RSS {cond } {S} Rd , Rn , <Oprand2> N Z C V Rd:= Oprnd2 —Rn —NOT(Carry)饱和减5E QSUB {cond } Rd , Rm , Rn Q Rd:=SA T( Rm —Rn ) No shift/rotate 饱和乘2减5E QDSUB {cond } Rd , Rm , Rn Q Rd:=SA T( Rm —SA T(Rn*2) ) No shift/rotate 乘法 2 MUL {cond } {S} Rd , Rm , Rs N Z C* Rd:=(Rm*Rs)[31:0] 乘加 2 MLA {cond } {S} Rd , Rm , Rs , Rn N Z C* Rd:=((Rm*Rs)+Rn)[31:0]无符号长整数乘法M UMULL {cond } {S} RdLo , RdHi , Rm , Rs N Z C* V* RdHi , RdLo:=unsigned(Rm*Rs)无符号长整数乘加M UMLA L{cond } {S} RdLo , RdHi , Rm , Rs N Z C* V* RdHi , RdLo:=unsigned(RdHi ,RdLo+Rm*Rs)有符号长整数乘法M SMULL {cond } {S} RdLo , RdHi , Rm , Rs N Z C* V* RdHi , RdLo:= signed(Rm*Rs)有符号长整数乘加M SMLA L{cond } {S} RdLo , RdHi , Rm , Rs N Z C* V* RdHi , RdLo:= signed(RdHi , RdLo+Rm*Rs)有符号16*16乘法5E SMULxy {cond } Rd , Rm , Rs Rd:= Rm[x]*Rs[y] No shift/rotate 算术有符号32*16乘法5E SMULWy {cond } Rd , Rm , Rs Rd:= (Rm[x]*Rs[y])[47:16] No shift/rotate501有符号16*16乘加5E SMLAxy {cond } Rd , Rm , Rs , Rn Q Rd:= Rn + Rm[x]*Rs[y] No shift/rotate 有符号32*16乘加5E SMLAWy {cond } Rd , Rm , Rs , Rn Q Rd:= Rn + (Rm[x]*Rs[y] )[47:16] No shift/rotate有符号16*16长整数乘加5ESMLALxy {cond } RdLo , RdHi , Rm , Rs RdHi , RdLo:= RdHi , RdLo+Rm[x]*Rs[y] No shift/rotate前导零计数 5 CLZ{cond } Rn , Rm Rd:=number of leading zeroes in Rm 测试TST{cond} Rn , <Oprand2> N Z C Update CPSR flags on Rn AND Oprnd2 测试相等TEQ{cond} Rn , <Oprand2> N Z C Update CPSR flags on Rn EOR Oprnd2 逻辑与AND{cond} {S} Rd , Rn , <Oprand2> N Z C Rd:=Rn AND Oprnd2逻辑异或EOR{cond} {S} Rd , Rn , <Oprand2> N Z C Rd:=Rn AND Oprnd2逻辑或ORR{cond} {S} Rd , Rn , <Oprand2> N Z C Rd:=Rn AND Oprnd2位清除BIC{cond} {S} Rd , Rn , <Oprand2> N Z C Rd:=Rn AND Oprnd2逻辑空操作NOP R0:=R0比较CMP{cond} Rn , Oprnd2 N Z C V Update CPSR flags on Rn —Oprnd2 比较比较反值CMN{cond} Rn , Oprnd2 N Z C V Update CPSR flags on Rn + Oprnd2转移B{cond} label R15:=label Label must be within±32 Mb of currentinstruction带链接BL{cond} label R14:=R15-4 , R15:=label Label must be within±32 Mb of currentinstruction带交换4T BX{cond} Rm R15:=Rm , change to Thumb if Rm[0] is 1 转移带链接和交换(1)5T BLX label R14:=R15-4 , R15:=label , change to Thumb Cannot be conditionalLabel must be within±32 Mb of currentinstruction502带链接和交换(2)5T BLX{cond} Rm R14:=R15-4 , R15:=Rm[31:1] , change to Thumb if Rm[0] is 1字读取LDR{cond} Rd , <a_mode2> Rd:=[address] 用户模式LDR{cond} T Rd , <a_mode2P>转移(交换)LDR{cond} R15 , <a_mode2> Rd:=[address][31:1](§5T:Change to Thumb if [address][0] is 1) 字节读取LDR{cond} B Rd , <a_mode2> Rd:=ZeroExtend[byte from address] 用户模式LDR{cond} BT Rd , <a_mode2P>有符号数 4 LDR{cond} SB Rd, <a_mode3> Rd:=SignExtend[byte from address] 半字 4 LDR{cond} H Rd , <a_mode3> Rd:=ZeroExtend[halfword from address] 有符号数 4 LDR{cond} SH Rd , <a_mode3> Rd:=SignExtend[halfword from address] Pop或块数据读取LDM{cond} <a_mode4L> Rd{!} ,<reglist-PC> Load list of registers from [Rd] 返回(交换)LDM{cond} <a_mode4L> Rd{!} ,<reglist+PC> Load registers, R15:=[address][31:1](§5T:Change to Thumb if [address][0] is 1)保存CPSR LDM{cond} <a_mode4L> Rd{!} ,<reglist+PC>^ Load registers, branch(§5T:and exchange) ,CPSR:=SPSR Use from exception mode onlyLoad寄存器(用户模式下)LDM{cond} <a_mode4L> Rd{!} ,<reglist-PC>^ Load list of User mode register to [Rd] Use from privilegedmode only 字存储STR{cond} Rd , <a_mode2> [address]:=Rd用户模式STR{cond} T Rd , <a_mode2P> [address]:=Rd字节存储STR{cond} B Rd, <a_mode2> [address][7:0]:=Rd[7:0]用户模式STR{cond} BT Rd , <a_mode2P> [address][7:0]:=Rd[7:0]半字存储 4 STR{cond} H Rd , <a_mode3> [address][15:0]:=Rd[15:0]StorePush, 或块数据存储STM{cond} <a_mode4S> Rd{!} ,<reglist> Store list of registers to [Rd]503寄存器(用户模式下)STM{cond} <a_mode4L> Rd{!} ,<reglist>^ Store list of User mode registers to [Rd] Use from privilegedmode only字交换 3 SWP{cond} Rd , Rm , [Rn] Temp:=[Rn] , [Rn]:=Rm , Rd:=temp交换字节交换3 SWP{cond} B Rd , Rm , [Rn] Temp:=ZeroExtend([Rn][7:0]) ,[Rn][7:0]:=Rm , Rd:=temp数据运算 2 CDP{cond} P <cpnum>,<op1>CRd , CRn , CRm , <op2>5 CDP2 P <cpnum>,<op1>CRd , CRn , CRm , <op2> Cannot be conditional ARM寄存器至协处理器 2 MRC{cond} P <cpnum>,<op1>CRd , CRn , CRm , <op2>5 MRC2 P <cpnum>,<op1>CRd , CRn , CRm , <op2> Cannot be conditional协处理器至ARM寄存器2MCR{cond} P <cpnum>,<op1>CRd , CRn , CRm , <op2>5 MCR2 P <cpnum>,<op1>CRd , CRn , CRm , <op2> Cannot be conditional存储器至协处理器 2 LDC{cond} P <cpnum>, CRd , <a_mode5>5 LDC2 P <cpnum>,CRd , <a_mode5> Cannot be conditional协处理器至存储器 2 STC{cond} P <cpnum>, CRd , <a_mode5>协处理器5 STC2 P <cpnum>,CRd , <a_mode5> Cannot be conditional软件中断SWI{cond}<immed_24> Software interrupt exception 24-bit value encodedin instruction断点 5 BKPT <immed_16> Prefetch abort or enter debug state Cannot be conditional504表A –2 ARM寻址方式速查表寻址方式2--- Word and Unsigned Byte Data TransferPre-indexed Immediate offset [Rn,#±<immed_12>]{!}Zero Offset [Rn] Equivalent to[Rn,#0]Register Offset [Rn, ±Rm]{!}Scaled register offset [Rn, ±Rm,LSL #<immde_5>]{!} Allowed shifts 0-31[Rn,±Rm,LSR#<immde_5>]{!} Allowed shifts 1-32[Rn,±Rm,ASR#<immde_5>]{!} Allowed shifts 1-32[Rn,±Rm,ROR#<immde_5>]{!} Allowed shifts 1-31[Rn, ±Rm,RRX]{!}Post-indexed Immediate offset [Rn],# ±<immed_12>Register Offset [Rn], ±RmScaled register offset [Rn], ±Rm,LSL#<immed_5> Allowed shifts 0-31[Rn], ±Rm,LSR#<immed_5> Allowed shifts 1-32[Rn], ±Rm,ASR#<immed_5> Allowed shifts 1-32[Rn], ±Rm,ROR#<immed_5> Allowed shifts 1-31[Rn], ±Rm,RRX寻址方式2(Post-indexed only)Post-indexed Immediate offset [Rn],#±<immed_12>Zero Offset [Rn] Equivalent to[Rn],#0Register Offset [Rn], ±RmScaled register offset [Rn], ±Rm,LSL #<immde_5> Allowed shifts 0-31[Rn], ±Rm,LSR #<immde_5> Allowed shifts 1-32[Rn], ±Rm,ASR #<immde_5> Allowed shifts 1-32[Rn], ±Rm,ROR #<immde_5> Allowed shifts 1-31[Rn], ±Rm,RRX寻址方式5 ------- Coprocessor Data TransferPre-indexed mmediate offset [Rn,#±<immed_8*4>]{!}Zero Offset [Rn] Equivalent to[Rn,#0] Post-indexed Immediate offset [Rn],# ±<immed_8*4>Unindexed No offset [Rn], {8 – bit copro.option}ARM 架构版本n ARM 架构n版本nT ARM 架构n版本T分支M ARM 架构3M和4版本M分支nE ARM 架构n版本E分支寻址方式4 ---- Multiple Data TransferBlock load Stack popIA Increment AfterIB Increment BeforeDA Decrement AfterDB Decrement BeforeFD Full DescendingED Empty DescendingFA Full AscendingEA Empty AscendingBlock store Stack pushIA Increment AfterIB Increment BeforeDA Decrement AfterDB Decrement BeforeEA Empty AscendingFA Full AscendingED Empty DescendingFD Full Descending505506PSR 字段后缀 含义 c 控制段屏蔽码 PSR[7:0] f 标志段屏蔽码 PSR[31:24] s 状态段屏蔽码 PSR[23:16] x扩展段屏蔽码PSR[15:8]条件代码含义标志位状态显示寻址方式3 -----Halfword and Signed Byte Data Transfer Pre-indexed Immediate offset [Rn],#±<immed_8>{!} Zero Offset [Rn] Equivalent to[Rn,#0] Register [Rn, ±Rm]{!} Post-indexed Immediate offset [Rn],# ±<immed_8> Register[Rn], ±Rm第二操作数immediate#<immed_8r>Logical shift left immediate Rm , LSL # <immed_5> Allowed shift 0~31 Logical shift right immediate Rm , LSR # <immed_5> Allowed shift 0~31 Arithmetic shift right immediate Rm , ASR # <immed_5> Allowed shift 0~31 Rotate right immediate Rm , ROR # <immed_5> Allowed shift 0~31 RegisterRm Rotate right extended Rm , RRX Logical shift left Register Rm , LSL Rs Logical shift right Register Rm , LSR Rs Arithmetic shift right Register Rm , ASR Rs Rotate right extendedRm , ROR RsEQ 相等/是否为0 Z置位NE 不等Z清零CS/ HS*进位置位/大于C置位CC/L O*进位清零/小于C清零MI 结果为负N置位PL 结果为正N清零VS 溢出V置位VC 无溢出V清零HI*大于C置位并且Z清零LS*小于C清零或Z置位GE*大于等于N等于VLT*小于等于N不等于VGT*大于Z清零或N等于VLE*小于等于Z置位或N不等于VAL 始终任何表中符号说明{!} Update base register after data transfer if ! present.(Post-indexed always updates)<immed_8r> A 32-bit constant , formed by right-rotating an 8-bit value by an even number of bits±+or-. (+may be omitted)507表A-3 Thumb指令速查表All Thumb registers are Lo (R0~R7) except where specified. Hi refisters are R8~R15功能§汇编指令码标志位是否更新Action Notesimmediate MOV Rd , #<immed_8> √Rd:=immed_8 8-bit immediate valueLo to Lo MOV Rd , Rm √Rd:=RmMovHi to Lo ,Lo to Hi, Hi to Hi MOV Rd , Rm ×Rd:=Rm Not Lo to LoAdd ADD Rd , Rn , #<immed_3> √Rd:=Rn+immed_3 3-bit immediate value Lo to Lo ADD Rd , Rn , Rm √Rd:=Rn+RmHi to Lo ,Lo to Hi, Hi to Hi ADD Rd , Rm ×Rd:=Rd+Rm Not Lo to Loimmediate ADD Rd , #<immed_8> √Rd:=Rn+immed_8 8-bit immediate valueWith carry ADC Rd , Rm √Rd:=Rn+Rm+C-bitValue to SP ADD SP, #<immed_7*4> ×SP:=SP+immed_7*4 9-bit immediate value(word-aligned )Form address from SP ADD Rd , SP , #<immed_8*4> ×Rd:=SP+immed_8*4 10-bit immediate value(word-aligned ) Form address from PC ADD Rd , PC , #<immed_7*4> ×Rd:=(PC AND 0xFFFFFFFC) +immed_8*4 10-bit immediate value(word-aligned ) subtract SUB Rd , Rn , Rm √Rd:=Rn-RmImmediate 3 SUB Rd , Rn , #<immed_3> √Rd:=Rn-immed_3 3-bit immediate valueImmediate 8 SUB Rd , #<immed_8> √Rd:=Rn-immed_8 8-bit immediate valueWith carry SBC Rd , Rm √Rd:=Rn-Rm-NOT C-bitValue to SP SUB SP , #<immed_7*4> ×SP:=SP-immed_7*4 9-bit immediate value(word-aligned ) ArithmeticNegate NEG Rd , Rm √Rd:= -Rm508Multiply MUL Rd , Rm √Rd:= Rm*RdCompare CMP Rd , Rm √Update CPSR Flags on Rn-Rm Can Lo to Lo, Lo to Hi , Hi to Lo , or Hi to Hi Negative CMN Rd , Rm √Update CPSR Flags on Rn+Rmimmediate CMP Rd , #<immed_8> √Update CPSR Flags on Rn-immed_8 8-bit immediate value No operation NOP ×R8:=R8 Flags not affectedLogicAND AND Rd , Rm √Rd:=Rd AND RmExclusive OR EOR Rd , Rm √Rd:=Rd EOR RmOR ORR Rd , Rm √Rd:=Rd OR RmBit Clear BIC Rd , Rm √Rd:=Rd AND NOT RmMoVe Not MVN Rd , Rm √Rd:=NOT RmTest bits TST Rn , Rm √Update CPSR Flags on Rn AND RmLogical shift left immediate LSL Rd , Rm , #<immed_5> √Rd:=Rm<<immed_5 5-bit immediate shift. Allowed shifts 0~31 Shift/RotateLSL Rd , Rs √Rd:=Rd<<RsLogical shift right immediate LSR Rd , Rm , #<immed_5> √Rd:=Rm>>immed_5 5-bit immediate shift. Allowed shifts 1~32LSR Rd , Rs √Rd:=Rd>>RsArithmetic shift right immediate ASR Rd , Rm , #<immed_5> √Rd:=Rm ASR immed_5 5-bit immediate shift. Allowed shifts 1~32ASR Rd , Rs √Rd:=Rd ASR RsRotate right immediate ROR Rd , Rs √Rd:=Rd ROR RsConditional branch B{cond} label R15:=label Label must be within –252 to +258 bytes of Branchcurrent instuction Unconditional branch B label R15:=label Label must be within ±2Kb of currentinstuctionlong branch with link BL label R14:=R15-2 , R15:=label Encoded as two Thumb instructionsLabel must be within ±4Mb of currentinstuction509Branch and exchange BX Rm R15:=Rm AND 0xFFFFFFFE Change to Arm state if Rm[0]=0Branch with link and exchange BLX label R14:=R15-2 , R15:=label , change to ARM Encoded as two Thumb instructionsLabel must be within ±4Mb of currentinstuctionBranch with link and exchange BLX Rm R14:=R15-2 , R15:=Rm AND 0xFFFFFFFFE ,change to ARM if Rm[0] is 0SWI<immed_8> Software interrupt processor exception 8-bit immediate value encoded in instruction SoftwareinterruptBreakpoint 5T BKPT< immed_8> Prefetch abort or enter debug stateWith immediate offset , word LDR Rd , [Rn , #< immed_5*4>] Rd:=[Rn+immed_5*4]LoadHalfword LDRH Rd , [Rn , #< immed_5*2>] Rd:=ZeroExtend([Rn+immed_5*2][15:0]) Clears bits 31:16byte LDRB Rd , [Rn , #< immed_5>] Rd:=ZeroExtend([Rn+immed_5][7:0]) Clears bits 31:8 With register offset , word LDR Rd , [Rn , Rm] Rd:=[Rn+Rm]halfword LDRH Rd , [Rn , Rm] Rd:=ZeroExtend([Rn+Rm][15:0]) Clears bits 31:16signed LDRSH Rd , [Rn , Rm] Rd:=SignExtend([Rn+Rm][15:0]) Sets bits 31:16 to bit 15byte LDRB Rd , [Rn , Rm] Rd:=ZeroExtend([Rn+Rm][7:0]) Clear bits 31:8Signed byte LDRSB Rd , [Rn , Rm] Rd:=SignExtend([Rn+Rm][7:0]) Sets bits 31:8 to bit 7PC-relative LDR Rd , [PC , #< immed_8*4>] Rd:=[(PC AND 0xFFFFFFFC)+immed_8*4]SP-relative LDR Rd , [SP , #< immed_8*4>] Rd:=[SP+immed_8*4]Multiple LDMIA Rn!, < register> Loads list of registers Always updates base registerStoreWith immediate offset , word STR Rd , [Rn , #< immed_5*4>] [Rn+immed_5*4] := Rdhalfword STRH Rd , [Rn , #< immed_5*2>] [Rn+immed_5*2][15:0] := Rd[15:0] Ignores Rd[31:16]byte STRB Rd , [Rn , #< immed_5>] [Rn+immed_5][7:0] := Rd[7:0] Ignores Rd[31:8] With register offset , word STR Rd , [Rn , Rm] [Rn+Rm] := Rdhalfword STRH Rd , [Rn , Rm] [Rn+Rm][15:0] := Rd[15:0] Ignores Rd[31:16]510byte STRB Rd , [Rn , Rm] [Rn+Rm][7:0] := Rd[7:0] Ignores Rd[31:8]SP-relative STR Rd , [SP , #< immed_8*4>] [SP+immed_8*4] := RdMultiple STMIA Rn!, < register> Stores list of registers Always updates base register Push PUSH < register> Push registers onto stack Full descending stackPush/PopPush with link PUSH < register , LR> Push LR and registers onto stackPop POP < register> POP registers from stackPop and return POP < register , PC> POP registers , branch to address loaded to PCPop and return with exchange 5T POP < register , PC> Push registers , branch , and change to ARM stateif address[0] =0511。
电脑知识-单片机指令速查表

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

8051系列单片机汇编语言指令速查表说明:1)Ri, Rn指当前工作寄存器,i,n = 0 – 7,当前工作寄存器由程序状态字寄存器PSW的2个位RS1, RS0决定MCS-51使用汇编语言指令,它共有44个操作码助记符,33种功能,其操作数有#data、direct、Rn、@Ri等。
这里介绍指令助记符及其相关符号的记忆方法。
一、助记符号的记忆方法1、表格列举法把44个指令助记符按功能分为五类,每类列表记忆。
此处从略,请读者自己总结。
2、英文还原法单片机的操作码助记符是该指令功能的英文缩写,将缩写还原成英语原文,再对照汉语有助于理解其助记符含义,从而加强记忆。
例如:增量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 carry3、功能模块记忆法单片机的44个指令助记符,按所属指令功能可分为五大类,每类又可以按功能相似原则为2~3组。
这样,化整为零,各个击破,实现快速记忆。
1)数据传送组。
2)加减运算组MOV 内部数据传送ADD 加法MOVC 程序存储器传送ADDC 带进位加法MOVX 外部数据传送SUBB 带进位减法3)逻辑运算组。
4)子程序调用组。
ANL 逻辑与LCALL 长调用ORL 逻辑或ALALL 绝对调用XRL 逻辑异或RET 子程序返回二、指令的记忆方法1、指令操作数的有关符号MCS-51的寻址方式共有七种:立即数寻址、直接寻址、寄存器寻址、寄存器间址、变址寻址、相对寻址、位寻址。
MCS-51单片机指令表(打印版)

数据存储器数据存储器也称为随机存取数据存储器。
数据存储器分为内部数据存储和外部数据存储。
MCS-51内部RAM有128或256个字节的用户数据存储(不同的型号有分别),片外最多可扩展64KB的RAM,构成两个地址空间,访问片内RAM用“MOV”指令,访问片外RAM用“MOVX”指令。
它们是用于存放执行的中间结果和过程数据的。
MCS-51的数据存储器均可读写,部分单元还可以位寻址。
MCS-51单片机的内部数据存储器在物理上和逻辑上都分为两个地址空间,即:数据存储器空间(低128单元);特殊功能寄存器空间(高128单元);这两个空间是相连的,从用户角度而言,低128单元才是真正的数据存储器。
下面我们就来详细的与大家讲解一下:低128单元:片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址,对片外数据存储器采用间接寻址方式,R0、R1和DPTR都可以做为间接寻址寄存器,R0、R1是8位的寄存器,即R0、R1的寻址范围最大为256个单元,而DPTR是16位地址指针,寻址范围就可达到64KB。
也就是说在寻址片外数据存储器时,寻址范围超过了256B,就不能用R0、R1做为间接寻址寄存器,而必须用DPTR寄存器做为间接寻址寄存器。
从上图中我们可以看到,8051单片机片内RAM共有256个单元(00H-FFH),这256个单元共分为两部分。
其一是地址从00H—7FH单元(共128个字节)为用户数据RAM。
从80H—FFH 地址单元(也是128个字节)为特殊寄存器(SFR)单元。
从下图中可清楚地看出它们的结构分布。
1、通用寄存器区(00H-1FH)在00H—1FH共32个单元中被均匀地分为四块,如下图,每块包含八个8位寄存器,均以R0—R7来命名,我们常称这些寄存器为通用寄存器。
这四块中的寄存器都称为R0—R7,那么在程序中怎么区分和使用它们呢?聪明的INTEL工程师们又安排了一个寄存器——程序状态字寄存器(PSW)来管理它们,CPU只要定义这个寄存的PSW的D3和D4位(RS0和RS1),即可选中这四组通用寄存器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
1
ANL direct, #data
直接寻址单元与立即数
3
1
ORL A, Rn
累加器或寄存器
1
1
ORL A,@Ri
累加器或内部RAM单元
1
1
ORL A,#data
累加器或立即数
2
1
ORL A,direct
累加器或直接寻址单元
2
1
ORL direct, A
直接寻址单元或累加器
2
1
直接寻址位为1转移并清该位
3
2
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
2
JNC rel
C为零转移
2
2
JB bit,rel
直接寻址位为1转移
3
2
JNB bit,rel
直接寻址为0转移
3
2
JBC bit,rel
1
2
算
术
运
算
类
指
令
XCH A ,Rn
累加器与寄存器交换
1ห้องสมุดไป่ตู้
1
XCH A ,@Ri
累加器与内部RAM单元交换
1
1
XCHD A ,direct
累加器与直接寻址单元交换
2
1
XCHD A ,@Ri
累加器与内部RAM单元低4位交换
1
1
SWAP A
累加器高4位与低4位交换
1
1
POP direct
栈顶弹出指令直接寻址单元
直接寻址单元送累加器
2
1
MOV direct ,A
累加器送直接寻址单元
2
1
MOV Rn,#data
立即数送寄存器
2
1
MOV direct ,#data
立即数送直接寻址单元
3
2
MOV @Ri ,#data
立即数送内部RAM单元
2
1
MOV direct ,Rn
寄存器送直接寻址单元
2
2
MOV Rn ,direct
直接寻址单元送寄存器
2
2
MOV direct ,@Ri
内部RAM单元送直接寻址单元
2
2
MOV @Ri ,direct
直接寻址单元送内部RAM单元
2
2
MOV direct2,direct1
直接寻址单元送直接寻址单元
3
2
MOV DPTR ,#data16
16位立即数送数据指针
3
2
MOVX A ,@Ri
外部RAM单元送累加器(8位地址)
ORL direct, #data
直接寻址单元或立即数
3
1
XRL A, Rn
累加器异或寄存器
1
1
XRL A,@Ri
累加器异或内部RAM单元
1
1
XRL A,#data
累加器异或立即数
2
1
XRL A,direct
累加器异或直接寻址单元
2
1
XRL direct, A
直接寻址单元异或累加器
2
1
XRL direct, #data
SUBB A, Rn
累加器减寄存器和进位标志
1
1
SUBB A, @Ri
累加器减内部RAM单元和进位标志
1
1
SUBB A, #data
累加器减立即数和进位标志
2
1
SUBB A, direct
累加器减直接寻址单元和进位标志
2
1
DEC A
累加器减1
1
1
DEC Rn
寄存器减1
1
1
DEC @Ri
内部RAM单元减1
2
2
PUSH direct
直接寻址单元压入栈顶
2
2
ADD A, Rn
累加器加寄存器
1
1
ADD A, @Ri
累加器加内部RAM单元
1
1
ADD A, direct
累加器加直接寻址单元
2
1
ADD A, #data
累加器加立即数
2
1
ADDC A, Rn
累加器加寄存器和进位标志
1
1
ADDC A, @Ri
累加器加内部RAM单元和进位标志
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
2
DJNZ direct ,rel
直接寻址单元减1不为零转移
1
1
ADDC A, #data
累加器加立即数和进位标志
2
1
ADDC A, direct
累加器加直接寻址单元和进位标志
2
1
INC A
累加器加1
1
1
INC Rn
寄存器加1
1
1
INC direct
直接寻址单元加1
2
1
INC @Ri
内部RAM单元加1
1
1
INC DPTR
数据指针加1
1
2
DA A
十进制调整
1
1
MCS 51 指令速查表
类别
指令格式
功能简述
字节数
周期
数
据
传
送
类
指
令
期
MOV A, Rn
寄存器送累加器
1
1
MOV Rn,A
累加器送寄存器
1
1
MOV A ,@Ri
内部RAM单元送累加器
1
1
MOV @Ri ,A
累加器送内部RAM单元
1
1
MOV A ,#data
立即数送累加器
2
1
MOV A ,direct
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为基址)
3
2
布
尔
操
作
类
指
令
NOP
空操作
1
1
MOV C, bit
直接寻址位送C
2
1
MOV bit, C
C送直接寻址位
2
1
CLR C
C清零
1
1
CLR bit
直接寻址位清零
2
1
CPL C
C取反
1
1
CPL bit
直接寻址位取反
2
1
SETB C
C置位
1
1
SETB bit
直接寻址位置位
2
1
ANL C, bit
C逻辑与直接寻址位
直接寻址单元异或立即数
3
2
RL A
累加器左循环移位
1
1
RLC A
累加器连进位标志左循环移位
1
1
RR A
累加器右循环移位
1
1
RRC A
累加器连进位标志右循环移位
1
1
CPL A
累加器取反
1
1
CLR A
累加器清零
1
1
控
制
转
移
类
指
令
ACCALL addr11
2KB范围内绝对调用
2
2
AJMP addr11
2KB范围内绝对转移
1
1
DEC direct
直接寻址单元减1
2
1
MUL AB
累加器乘寄存器B
1
4
DIV AB
累加器除以寄存器B
1
4
逻
辑
运
算
类
指
令
ANL A, Rn
累加器与寄存器
1
1
ANL A, @Ri
累加器与内部RAM单元
1
1
ANL A, #data
累加器与立即数
2
1
ANL A, direct
累加器与直接寻址单元
2
1
ANL direct, A
2
2
LCALL addr16
2KB范围内长调用
3
2
LJMP addr16
2KB范围内长转移
3
2
SJMP rel
相对短转移
2
2
JMP @A+DPTR
相对长转移
1
2
RET
子程序返回
1
2
RET1
中断返回