51指令速查表

合集下载

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单片机指令简表

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指令表

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指令编码表

51指令编码表
0
1
2
3
4
5
6~7
8~F
M_OP
0
NOP
*AJMP addrll
*LJMP addr16
RR A
INC A
INC dir
INC @Ri
INC Rn
INC
1
*JBC bit,rel
*ACALL adll
*LCALL addr16
RRC A
DEC A
DEC dir
DEC @Ri
DEC Rn
DEC
2
*JB bit;rel
*AJMP addrll
*ANL C,bit
MOVC A,@A+PC
**DIV AB
*MOV dir,dir
*MOV dir,@Ri
*MOV dir,Rn
MOV dir
9
*MOV dptr,#da16
*ACALL adll
*MOV bit,C
MOVC A,@A+DP
SUBB A,#da
SUBB A,dir
ORL dir,A
*ORL dir,#da
ORL A,#da
ORL A,dir
ORL A,@Ri
ORL A,Rn
ORL
5
*JNC rel
*ACALL adll
ANL dir,A
*ANL dir,#da
ANL A,#da
ANL A,dir
ANL A,@Ri
ANL A,Rn
ANL
6
*JZ rel
*AJMP addrll
*CJNE A,dir,rel
*CJNE @Ri,#da,REL
*CJNE Rn,#da,rel

51单片机指令大全

51单片机指令大全

51单片机指令大全1 MOV A,Rn 寄存器内容送入累加器2 MOV A,direct 直接地址单元中的数据送入累加器3 MOV A,@Ri 间接RAM 中的数据送入累加器4 MOV A,#tata 立即数送入累加器5 MOV Rn,A 累加器内容送入寄存器6 MOV Rn,direct 直接地址单元中的数据送入寄存器7 MOV Rn,#data 立即数送入寄存器8 MOV direct,A 累加器内容送入直接地址单元9 MOV direct,Rn 寄存器内容送入直接地址单元10 MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元11 MOV direct,@Ri 间接RAM 中的数据送入直接地址单元12 MOV direct,#data 立即数送入直接地址单元13 MOV @Ri,A 累加器内容送间接RAM 单元14 MOV @Ri,direct 直接地址单元数据送入间接RAM 单元15 MOV @RI,#data 立即数送入间接RAM 单元16 MOV DRTR,#dat16 16 位立即数送入地址寄存器17 MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器18 MOVC A,@A+PC 以PC 为基地址变址寻址单元中的数据送入累加器19 MOVX A,@Ri 外部RAM(8 位地址)送入累加器20 MOVX A,@DPTR 外部RAM(16 位地址)送入累加器21 MOVX @Ri,A 累计器送外部RAM(8 位地址)22 MOVX @DPTR,A 累计器送外部RAM(16 位地址)23 PUSH direct 直接地址单元中的数据压入堆栈24 POP direct 弹栈送直接地址单元25 XCH A,Rn 寄存器与累加器交换26 XCH A,direct 直接地址单元与累加器交换27 XCH A,@Ri 间接RAM 与累加器交换28 XCHD A,@Ri 间接RAM 的低半字节与累加器交换算术操作类指令:1 ADD A,Rn 寄存器内容加到累加器2 ADD A,direct 直接地址单元的内容加到累加器3 ADD A,@Ri 间接ROM 的内容加到累加器4 ADD A,#data 立即数加到累加器5 ADDC A,Rn 寄存器内容带进位加到累加器6 ADDC A,direct 直接地址单元的内容带进位加到累加器7 ADDC A,@Ri 间接ROM 的内容带进位加到累加器8 ADDC A,#data 立即数带进位加到累加器9 SUBB A,Rn 累加器带借位减寄存器内容10 SUBB A,direct 累加器带借位减直接地址单元的内容11 SUBB A,@Ri 累加器带借位减间接RAM 中的内容12 SUBB A,#data 累加器带借位减立即数13 INC A 累加器加114 INC Rn 寄存器加115 INC direct 直接地址单元加116 INC @Ri 间接RAM 单元加117 DEC A 累加器减118 DEC Rn 寄存器减1 1 1219 DEC direct 直接地址单元减120 DEC @Rj 间接RAM 单元减 121 INC DPTR 地址寄存器DPTR 加 122 MUL AB A 乘以B,结果放在A23 DIV AB A 除以B,结果放在A24 DA A 累加器十进制调整布尔变量操作类指令:1 CLR C 清进位位2 CLR bit 清直接地址位3 SETB C 置进位位4 SETB bit 置直接地址位5 CPL C 进位位求反6 CPL bit 置直接地址位求反7 ANL C,bit 进位位和直接地址位相“与”8 ANL C,bit 进位位和直接地址位的反码相“与”9 ORL C,bit 进位位和直接地址位相“或”10 ORL C,bit 进位位和直接地址位的反码相“或”11 MOV C,bit 直接地址位送入进位位12 MOV bit,C 进位位送入直接地址位13 JC rel 进位位为1 则转移14 JNC rel 进位位为0 则转移15 JB bit,rel 直接地址位为1 则转移16 JNB bit,rel 直接地址位为0 则转移17 JBC bit,rel 直接地址位为1 则转移,该位清零逻辑操作数指令:1 ANL A,Rn 累加器与寄存器相“与”2 ANL A,direct 累加器与直接地址单元相“与”3 ANL A,@Ri 累加器与间接RAM 单元相“与”4 ANL A,#data 累加器与立即数相“与”5 ANL direct,A 直接地址单元与累加器相“与”6 ANL direct,#data 直接地址单元与立即数相“与”7 ORL A,Rn 累加器与寄存器相“或”8 ORL A,direct 累加器与直接地址单元相“或”9 ORL A,@Ri 累加器与间接RAM 单元单元相“或”10 ORL A,#data 累加器与立即数相“或”11 ORL direct,A 直接地址单元与累加器相“或”12 ORL direct,#data 直接地址单元与立即数相“或”13 XRL A,Rn 累加器与寄存器相“异或”14 XRL A,direct 累加器与直接地址单元相“异或”15 XRL A,@Ri 累加器与间接RAM 单元单元相“异或”16 XRL A,#data 累加器与立即数相“异或”17 XRL direct,A 直接地址单元与累加器相“异或”18 XRL direct,#data 直接地址单元与立即数相“异或”19 CLR A 累加器清“0”20 CPL A 累加器求反21 RL A 累加器循环左移22 RLC A 累加器带进位位循环左移23 RR A 累加器循环右移24 RRC A 累加器带进位位循环右移25 SWAP A 累加器半字节交换控制转移类指令:1 ACALL addr11 绝对(短)调用子程序2 LCALL addr16 长调用子程序3 RET 子程序返回4 RETI 中数返回5 AJMP addr11 绝对(短)转移6 LJMP addr16 长转移7 SJMP rel 相对转移8 JMP @A+DPTR 相对于DPTR 的间接转移9 JZ rel 累加器为零转移10 CJNE rel 累加器非零转移11 CJNE A,direct,rel 累加器与直接地址单元比较,不相等则转移12 CJNE A,#data,rel 累加器与立即数比较,不相等则转移13 CJNE Rn,#data,rel 寄存器与立即数比较,不相等则转移14 CJNE @Ri,#data,rel 间接RAM 单元与立即数比较,不相等则转移15 DJNZ Rn,rel 寄存器减1,非零转移16 DJNZ direct,erl 直接地址单元减1,非零转移17 NOP 空操作。

51单片机汇编指令查询

51单片机汇编指令查询

===================数据传送=================== MOV A,Rn E8~EF 寄存器AMOV A,direct E5 dircet 直接字节送AMOV A,@Ri ER~E7 间接RAM送AMOV A,#data 74 data 立即数送AMOV Rn,A F8~FF A送寄存器MOV Rn,dircet A8~AF dircet 直接字节送寄存器MOV Rn,#data 78~7F data 立即数送寄存器MOV dircet,A F5 dircet A送直接字节MOV dircet,Rn 88~8F dircet 寄存器送直接字节MOV dircet1,dircet2 85 dircet1 dircet2 直接字节送直接字节MOV dircet,@Ro 86~87 间接RAM送直接字节MOV dircet,#data 75 dircet data 立即数送直接字节MOV @Ri,A F6~F7 A送间接RAMMOV @Ri,#data 76~77 data 直接字节送间接RAMMOV @Ri,#data 76~77 data 立即数送间接RAMMOV DPTR,#data16 90 data 15~8 data7~0 16位常数送数据指针MOVC A,@A+DPTR 93 由((A)+(DPTR))寻址的程序存贮器字节选A MOVC A,@A+PC 83 由((A)+(PC));寻址的程序存贮器字节送A MOVX A,@Ri E2~E3 送外部数据(8位地址)送AMOVX A,@DPTR E0 送外部数据(16位地址)送AMOVX @Ri,A F2~F3 A送外部数据(8位地址)MOVX @DPTR,A F0 A送外部数据(16位地址)PUSH dircet C0 dircet 直接字节进栈,SP加1POP dircet D0 dircet 直接字节退栈,SP减1XCH A,Rn C8~CF 交换A和寄存器XCH A,dircet C5 dircet 交换A和直接字节XCH A,@Ri C6~C7 交换A和间接RAMXCH A,@Ri D6~D7 交换A和间接RAM的低位SWAP A C4===================算术运算=================== ADD A,Rn 28~2F 寄存器加到AADD A,dircet 25 dircet 直接字节加到AADD A,@Ri 26~27 间接RAM加到AADD A,#data 24data 立即数加到AADD A,Rn 38~3F 寄存器和进位位加到AADD A,dircet 35dircet 直接字节和进位位加到AADD A,@Ri 36~37 间接字节和进位位加到AADD A,data 34 data 立即数和进位位加到AADD A,Rn 98~9F A减去寄存器和进位位ADD A,dircet 95 dircet A减去直接字节和进位位ADD A,@Ri 36~37 间接RAM和进位位加到AADD A,data 34 data 立即数和进位位加到ASUBB 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加1INC Rn 08~0F 寄存器加1INC dircet 05 dircet 直接字节加1INC @Ri 06~07 间接RAM加1DEC A 14 A减1DEC Rn 18~1F 寄存器减1DEC dircet 15 dircet 直接字节减1DEC @Ri 16~17 间接RAM减1INC DPTR A3 数据指针加1MUL AB A4 A乘以BDIV AB 84 A除以BDA A D4 A的十进制加法调整===================逻辑操作=================== ANL A,Rn 58~5F 寄存器“与”到AANL A,dircet 55 dircet 直接字节“与”到AANL A,@Ri 56~57 间接RAm“与”到AANL A,#data 54 data 立即数“与”到AANL dircet A 52 dircet A“与”到直接字节ANL dircet,#data 53 dircet data 立即数“与”到直接字节ORL A,Rn 48~4F 寄存器“或”到AORL A,dircet 45 dircet 直接字节“或”到AORL A,@Ri 46~47 间接RAM“或”到AORL A,#data 44 data 立即数“或”到AORL dircet,A 42 dircet A“或”到直接字节ORL dircet,#data 43 dircet data 立即数“或”到直接字节XRL A,Rn 68~6F 寄存器“异或”到AXRL A,dircet 65 dircet 直接字节“异或”到AXRL A,@Ri 66~67 间接RAM“异或”到AXRL A,#data 64 data 立即数“异或”到AXRL dircet A 62 dircet A“异或”到直接字节XRL dircet,#data 63 dircet data 立即数“异或”到直接字节CLR A E4 清零CPL A F4 A取反RL A 23 A左环移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 22 子程序调用返回RETI addr 11 32 中断调用返回AJMP addr 11 △1 addr(a7~a6) 绝对转移LJMP addr 16 02addr(15~8) addr(7~0) 长转移SJMP rel 80 rel 短转移,相对转移JMP @A+DPTR 73 相对于DPTR间接转移JZ rel 60 rel A为零转移JNZ rel 70 rel A为零转移CJNE A,dircet,rel B5 dircet rel 直接字节与A比较,不等则转移CJNE A,#data,rel B4 data rel 立即数与A比较,不等则转移CJNE A,Rn,#data,rel B8~BF data rel 立即数与寄存器比较,不等则转移CJNE @Ri,#data,rel B6~B7 data rel 立即数与间接RAM比较,不等则转移DJNZ Rn,rel D8~DF rel 寄存器减1,不为零则转移DJNZ dircet,rel B5 dircet rel 直接字节减1,不为零则转移NOP 00 空操作===================布尔操作=================== CLR C C3 清零进位CLR bit C2 清零直接位SETB C D3 置位进位SETB bit D2 置位直接位CPL C B3 进位取反CPL bit B2 直接位取反ANL C,bit 82 dit 直接数“与”到进位ANL C,/bit B0 直接位的反“与”到进位ORL C,bit 72 bit 直接位“或”到进位ORL C,/bit A0 bit 直接位的反“或”到进位MOV C,bit A2 bit 直接位送进位MOV bit,C 92 bit 进位送直接位JC rel 40 rel 进位位为1转移JNC rel 50 rel 进位位为0转移JB bit,rel 20 bit rel 直接位为1相对转移JNB bit,rel 30 bit rel 直接位为0相对转移JBC bit,rel 10 bit rel 直接位为1相对转移,然后清零该位。

51单片机中查表指令的使用

51单片机中查表指令的使用

个偏移量,以补偿数据表首址与MoVc A,@A+PC后面下! 一条指令地址的差值。也就是说,基址加变址A+Pc中, !
PC虽然不能改变,但可将A中的数据进行调整(加上偏 移量),就能实现准确查表。实际应用中,使用MOVC A,@”Pc指令编写程序时,调整偏移量有以下几种处理 方法:
1.子程序法。将查表指令写成子程序,子程序后紧 跟着安排数据表。

MOV DPTR, #TABLE
MOV A, @A+DPTR

‘ ●



TABLE:DB……·

在实际的单片机应用系统中,往往需要扩展外部数!
据存储器或输入输出接口(如键盘和数码显示等)。在!
这种情况下,程序中就要用到数据指针DPTR,要将其指;
向外RAM地址(或键盘与显示器地址),利用Movx;
式。用MOVC A,@A+DPT财旨令查表,因为数据指针DPTR
是16位的,故数据表可安排在64KB的ROM的任意地址范l
围内。使用时只要将数据指针DPTR(基址寄存器)指向I
欲查数据表的首地址,将累加器A(变址参数寄存器)I
赋以要查表的数据,就可实现查表功能,查得的数据存l
在累加器A中。通用的程序如下:
A,@DPTR和MOVx@DPTR,A指令与外RAM进行数据交换。;
若此时还需要查表(如数码显示程序,需查找七段显示;
器的段码),使用MoVc A,@A+DPTR指令就不太方便。;
数据指针DPTR既要指向内部程序存储器RoM的数据表首;
址,又要指向外部RAM或其他接口的地址,这虽然可用;
堆栈等方法来实现,但比较麻烦。在这种情况下最好使!
应用设计
5 1单片机中查表指令的使用

51指令速查表

51指令速查表
21
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单片机汇编指令速查表

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 2MOV @Ri ,direct 直接寻址单元送内部 RAM 单元 2 2MOV direct2,direct1 直接寻址单元送直接寻址单元3 2MOV DPTR ,#data16 16 位当即数送数据指针3 2MOVX A ,@Ri 外部 RAM 单元送累加器(8 位地址) 1 2MOVX @Ri ,A 累加器送外部 RAM 单元(8 位地址) 1 2MOVX A ,@DPTR 外部 RAM 单元送累加器(16 位地址) 1 2MOVX @DPTR ,A 累加器送外部 RAM 单元(16 位地址) 1 2MOVC A ,@A+DPTR 查表数据送累加器(DPTR 为基址) 1 2MOVC A ,@A+PC 查表数据送累加器(PC 为基址) 1 2XCH A ,Rn 累加器与寄放器互换1 1XCH A ,@Ri 累加器与内部RAM 单元互换 1 1XCHD A ,direct 累加器与直接寻址单元互换2 1XCHD A ,@Ri 累加器与内部 RAM 单元低 4 位互换1 1SW AP 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 1ADDC A, #data 累加器加当即数和进位标志 2 1ADDC A, direct 累加器加直接寻址单元和进位标志 2 1INC 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 1SUBB A, #data 累加器减当即数和进位标志2 1SUBB A, direct 累加器减直接寻址单元和进位标志2 1DEC 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 2CJNE Rn,#data ,rel 寄放器与当即数不等转移 3 2CJNE @Ri ,#data,rel RAM 单元与当即数不等转移3 2DJNZ Rn ,rel 寄放器减 1 不为零转移 2 2DJNZ direct ,rel 直接寻址单元减 1 不为零转移3 2NOP 空操作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 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 2 JNB bit,rel 直接寻址为 0 转移。

MCS-51经典指令表

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指令功能:构造目的地址,实现程序转移。

msc51指令速查表

msc51指令速查表
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
累加器与立即数
msc 51 指令速查表(逸风)
msc 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
立即数送累加器
1
1
POP direct
栈顶弹出指令直接寻址单元
2
2
PUSH direct
直接寻址单元压入栈顶
2
2
ADD A, Rn
累加器加寄存器
1
1
ADD A, @Ri
累加器加内部RAM单元
1
1
ADD A, direct
累加器加直接寻址单元

51单片机指令速查

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中。

2019年msc51指令速查表

2019年msc51指令速查表
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位立即数送数据指针
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转移
msc 51 指令速查表(逸风)
msc 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

51单片机常用特殊功能寄存器助记、速查总结

51单片机常用特殊功能寄存器助记、速查总结

51单片机特殊功能寄存器助记/速查总结PSW:程序状态字寄存器;地址:D0H,可位寻址P.3
IE:中断允许寄存器,地址:A8H,可位寻址P. 94
IP:中断优先级控制寄存器,地址:B8H,可位寻址P. 94
TCON:定时器控制寄存器,地址:88H,可位寻址P. 93 P. 104
PCON:电源控制寄存器,(电压控制及波特率选择)地址:87H, 不可位寻址
SCON:串行通信控制寄存器,地址:98H,可位寻址P. 127
TI:发送中断标志,由硬件置1,在方式0时,串行发送到第8位结束时置1;在其他方式,串行口发送停止位时置1。

TI必须由软件清0。

RI:接收中断标志,由硬件置1。

在方式0时(SM2应置0),接收到第8位结束时置1,当SM2=0的其他方式(方式0,1,3)时,接收到停止位置位“1”,当SM2=1时,若串口工作在方式2和3,接收到的第9位数据(RB8)为1时,才激活RI。

在方式1时,只有接收到有效的停止位时才会激活RI。

RI必须由软件清0
TMOD:定时器计数器工作方式控制,地址:89H, P.103
不可位寻址,只能以字节配置
对比记忆:
注:因时间仓促,其中可能会有错误,具体请以实际数据手册为准。

51单片机汇编指令集(附记忆方法)

51单片机汇编指令集(附记忆方法)

51单片机汇编指令集一、数据传送类指令(7种助记符)MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;MOVC(Move Code)读取程序存储器数据表格的数据传送;MOVX (Move External RAM) 对外部RAM的数据传送;XCH (Exchange) 字节交换;XCHD (Exchange low-order Digit) 低半字节交换;PUSH (Push onto Stack) 入栈;POP (Pop from Stack) 出栈;二、算术运算类指令(8种助记符)ADD(Addition) 加法;ADDC(Add with Carry) 带进位加法;SUBB(Subtract with Borrow) 带借位减法;DA(Decimal Adjust) 十进制调整;INC(Increment) 加1;DEC(Decrement) 减1;MUL(Multiplication、Multiply) 乘法;DIV(Division、Divide) 除法;三、逻辑运算类指令(10种助记符)ANL(AND Logic) 逻辑与;ORL(OR Logic) 逻辑或;XRL(Exclusive-OR Logic) 逻辑异或;CLR(Clear) 清零;CPL(Complement) 取反;RL(Rotate left) 循环左移;RLC(Rotate Left throught the Carry flag) 带进位循环左移;RR(Rotate Right) 循环右移;RRC (Rotate Right throught the Carry flag) 带进位循环右移;SWAP (Swap) 低4位与高4位交换;四、控制转移类指令(17种助记符)ACALL(Absolute subroutine Call)子程序绝对调用;LCALL(Long subroutine Call)子程序长调用;RET(Return from subroutine)子程序返回;RETI(Return from Interruption)中断返回;SJMP(Short Jump)短转移;AJMP(Absolute Jump)绝对转移;LJMP(Long Jump)长转移;CJNE (Compare Jump if Not Equal)比较不相等则转移;DJNZ (Decrement Jump if Not Zero)减1后不为0则转移;JZ (Jump if Zero)结果为0则转移;JNZ (Jump if Not Zero) 结果不为0则转移;JC (Jump if the Carry flag is set)有进位则转移;JNC (Jump if Not Carry)无进位则转移;JB (Jump if the Bit is set)位为1则转移;JNB (Jump if the Bit is Not set) 位为0则转移;JBC(Jump if the Bit is set and Clear the bit) 位为1则转移,并清除该位;NOP (No Operation) 空操作;五、位操作指令(1种助记符)CLR 位清零;SETB(Set Bit) 位置1。

51汇编指令表大全

51汇编指令表大全
MOVX @R1,A
累加器送外部RAM(8位地址)
CPL A
累加器求反
MOV dir,A
累加器内容送入直接地址单元
MOV @Ri,A
累加器内容送入间接RAM单元
MOV Rn,A
累加器内容送入寄存器
MOVX A,@R1
外部RAM(8位地址)送入累加器
CLR A
累加器清“0”
MOV A,rel
直接地址单元中的内容送入累加器
MOV A,@Ri
间接RAM中的数据送入累加器
MOV A,Rn
寄存器内容送入累加器
F
MOVX @DPTR,A
累加器送外部RAM(16位地址)
ACALL 7
MOVX @R0,A
累加器送外部RAM(8位地址)
XRL A,#da
累加器与立即数相“异或”
XRL A,dir
累加器与直接地址单元相“异或”
XRL A,@Ri
累加器与间接RAM单元相“异或”
XRL A,Rn
累加器与寄存器相“异或”
7
JNZ rel
累加器非零转移
ACALL 3
ORL C,bit
进位位和直接地址位相“或”
JMP @A+DPTR
相对于DPTR的间接转移
DIV AB
A除以B
MOV dir,dir
直接地址单元中的数据送入另一个直接地址单元
MOV dir@Ri
间接RAM中的数据送入直接地址单元
MOV dir,Rn
寄存器内容送入直接地址单元
9
MOV DPTR,#da
16位立即数送入地址寄存器
ACALL 4
MOV bit,C
进位位送入直接地址位

51内核单片机 111条 指令查询 大全

51内核单片机 111条 指令查询 大全
12 SUBB A,#data 累加器带借位减立即数
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为基地址变址寻址单元中的数据送入累加器

8051单片机汇编指令速查表分解

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的寻址方式共有七种:立即数寻址、直接寻址、寄存器寻址、寄存器间址、变址寻址、相对寻址、位寻址。

汇编语言指令速查表

汇编语言指令速查表

汇编语言指令速查表指令集是计算机中执行指令的一组规范。

在汇编语言中,使用指令来编写具体的程序。

为了方便程序员查找和运用各种指令,制作一份汇编语言指令速查表是非常有必要的。

在本文中,我将提供一份完整的汇编语言指令速查表,帮助读者快速查找和了解汇编语言指令。

以下是一份汇编语言指令速查表,按照指令的功能进行分类。

1. 数据传送指令MOV:将数据从源操作数移动到目标操作数。

XCHG:交换两个操作数的值。

2. 运算指令ADD:将源操作数的值与目标操作数的值相加,并将结果存储到目标操作数中。

SUB:将目标操作数的值减去源操作数的值,并将结果存储到目标操作数中。

MUL:将源操作数的值与目标操作数的值相乘,并将结果存储到目标操作数中。

DIV:将目标操作数的值除以源操作数的值,并将商存储到目标操作数中。

3. 逻辑运算指令AND:对源操作数和目标操作数进行逻辑与运算,并将结果存储到目标操作数中。

OR:对源操作数和目标操作数进行逻辑或运算,并将结果存储到目标操作数中。

XOR:对源操作数和目标操作数进行逻辑异或运算,并将结果存储到目标操作数中。

NOT:对目标操作数进行逻辑非运算,并将结果存储到目标操作数中。

4. 分支指令JMP:无条件跳转到指定的地址。

JZ:如果零标志位为1,则跳转到指定的地址。

JNZ:如果零标志位为0,则跳转到指定的地址。

JE:如果相等标志位为1,则跳转到指定的地址。

JNE:如果相等标志位为0,则跳转到指定的地址。

5. 循环指令LOOP:根据计数器的值,循环执行指定的代码块。

LOPZ:如果零标志位为1,则循环执行指定的代码块。

LOPE:如果相等标志位为1,则循环执行指定的代码块。

6. 存储器访问指令MOV:将数据从寄存器移动到存储器中,或将数据从存储器移动到寄存器中。

PUSH:将数据压入堆栈。

POP:将数据从堆栈中弹出。

7. 程序调用指令CALL:调用指定地址处的子程序。

RET:从调用的子程序返回。

8. I/O指令IN:从外部设备读取数据。

单片机指令表汇总

单片机指令表汇总

51单片机指令表汇总51单片机是一种广泛应用的微控制器,其指令集是进行编程的基础。

下面将51单片机的指令表进行汇总,以帮助初学者更好地理解其指令集。

一、数据传输指令1、MOV指令:将源操作数的内容传送到目标操作数。

2、XCH指令:将两个操作数的内容互换。

3、MOVC指令:从外部存储器将数据传送到目标操作数。

4、MOVX指令:将外部存储器中的数据传送到目标操作数。

5、PUSH指令:将数据压入堆栈。

6、POP指令:从堆栈中弹出数据。

二、算术运算指令1、ADD指令:将两个操作数相加,并将结果存放在目标操作数中。

2、SUB指令:从目标操作数中减去源操作数,并将结果存放在目标操作数中。

3、MUL指令:将两个操作数相乘,并将结果存放在目标操作数中。

4、DIV指令:将目标操作数除以源操作数,并将结果存放在目标操作数中。

5、ANL指令:对目标操作数和源操作数进行按位与运算,并将结果存放在目标操作数中。

6、ORL指令:对目标操作数和源操作数进行按位或运算,并将结果存放在目标操作数中。

7、XRL指令:对目标操作数和源操作数进行按位异或运算,并将结果存放在目标操作数中。

8、CPL指令:对目标操作数进行按位取反运算,并将结果存放在目标操作数中。

9、INC指令:将目标操作数加1。

10、DEC指令:将目标操作数减1。

11、ASR指令:将目标操作数右移n位,最高位用符号位补齐。

12、LSR指令:将目标操作数右移n位,最低位用0补齐。

13、ROL指令:将目标操作数循环左移n位,最高位移入最低位。

14、ROR指令:将目标操作数循环右移n位,最低位移入最高位。

单片机汇编指令表一、概述在单片机的世界里,汇编语言扮演着举足轻重的角色。

它是一种低级语言,能够直接与硬件进行交互,提供高效的代码执行效率。

下面,我们将详细列出一些常见的单片机汇编指令,以及它们的功能。

二、指令表1、MOV指令:用于将数据从一个寄存器移动到另一个寄存器。

例如,MOV R1, R2将把 R2的内容移动到 R1中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
将direct地址单元内的数据与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A
36
ADDC A, @Ri
寄存器Ri内为RAM地址,将该地址单元内的数据与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A
37
ADDC A, #data
将立即数与累加器A的数据相加,再加上进位标志内的值后结果保存到累加器A
RRC A
累加器A的值带进位循环右移1位
77
带进位左移
RLC A
累加器A的值带进位循环左移1位
控制转移指令
78
无条件转移
SJMP rel
rel为地址偏移量,PC加2后的地址加上rel作为目标地址,程序跳到目标地址继续运行
79
AJMP addr11(a10- a0)
addr11为11位地址,PC加2后的地址高5位与指令中的低11位地址构成目标地址,程序跳到目标地址继续运行
68
XRL A, @Ri
寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行异或操作,结果保存到累加器A中
69
XRL A, #data
将累加器A的值和立即数进行异或操作,结果保存到累加器A中
70
XRL direct, A
将累加器A的值和direct地址单元内的值进行异或操作,结果保存到direct地址单元内
41
SUBB A, #data
将累加器A的数据减去立即数,再减去进位标志内的值后,结果保存到累加器A
42
加1指令
INC A
累加器A的值自加1
43
INC Rn
寄存器Rn的值自加1
44
INC direct
direct地址单元内值自加1
45
INC @Ri
寄存器Ri内为RAM地址,该地址单元内的值自加1
46
110
位取反
CPL C
将Cy取反
111
CPL bit
将bit位地址的值取反
说明:
Ri, Rn指当前工作寄存器,i=0,1;n = 0 – 7,当前工作寄存器由程序状态字寄存器PSW的2个位RS1, RS0决定
将direct地址单元内的数据送累加器A
13
Mov direct, A
将累加器A内的数据送direct地址单元内
14
Mov A, @Ri
寄存器Ri内为RAM地址,将该地址单元内的数据送累加器A
15
Mov @Ri , A
寄存器Ri内为RAM地址,将累加器A的数据送该地址单元内
16
目的地址传送
Mov DPTR, #data16
93
JNB bit, rel
If(bit位=0)则PC加3再加上rel作为目标地址
94
JBC bit, rel
If(bit位=1)则PC加3再加上rel作为目标地址,且bit位清0
95
调用指令
ACALL addr11
addr11为11位地址,PC加2后的地址PUSH进堆栈,再将PC的地址高5位与指令中的低11位地址构成目标地址,程序跳到目标地址继续运行
71
XRL direct, #data
将立即数和direct地址单元内的值进行异或操作,结果保存到direct地址单元内
72
按位取反
CPL A
累加器A的值按位取反
73
累加器清零
CLR A
累加器A清0
74
逻辑右移
RR A
累加器A的值循环右移1位
75
逻辑左移
RL A
累加器A的值循环左移1位
76
带进位右移
83
JNZ rel
If(累加器A!=0)则PC加2再加上rel作为目标地址
84
CJNE A, direct, rel
If(累加器A!= direct地址单元的值)则PC加3再加上rel作为目标地址
85
CJNE A, #data, rel
If(累加器A!=立即数)则PC加3再加上rel作为目标地址
86
52
除法
DIV AB
累加器A的值除以寄存器B的值,商保存在累加器A中,余数保存在B寄存器
53
二-十进制调整
DA A
对累加器A的结果进行十进制调整
逻辑运算指令
54
逻辑与
ANL A, Rn
将累加器A的值和寄存器Rn的值进行与操作,结果保存到累加器A中
55
ANL A, direct
将累加器A的值和direct地址单元内的值进行与操作,结果保存到累加器A中
寄存器Ri内为RAM地址,将立即数#data送该地址单元内
5
Mov direct2, direct1
将direct1地址单元的数据送direct2地址单元内
6
Mov direct, rn
将Rn的数据送direct地址单元内
7
Mov Rn, direct
将direct地址单元内的数据送Rn寄存器
8
Mov direct, @Ri
布尔传送
MOV C, bit
将bit位地址中的值送PSW中的进位标志位CY
101
MOV bit, C
将PSW中的进位标志位CY的值送bit位地址中
102
位清0
CLR C
将进位标志位CY清0
103
位清0
CLR bit
将bit位地址内清0
104
位置1
SETB C
将进位标志位CY置1
105
SETB bit
59
ANL direct, #data
将立即数和direct地址单元内的值进行与操作,结果保存到direct地址单元内
60
逻辑或
ORL A, Rn
将累加器A的值和寄存器Rn的值进行或操作,结果保存到累加器A中
61
ORL A, direct
将累加器A的值和direct地址单元内的值进行或操作,结果保存到累加器A中
28
栈操作
PUSH direct
堆栈指针SP自加1后,将direct地址单元的数据压进堆栈,
29
POP direct
堆栈的数据送direct地址单元中,后堆栈指针减1,
算术运算指令
30
加法指令
ADD A, Rn
将寄存器Rn与累加器A的数据相加后,结果保存到累加器A
31
ADD A, direct
将direct地址单元内的数据与累加器A的数据相加后结果保存到累加器A
56
ANL A, @Ri
寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行与操作,结果保存到累加器A中
57
ANL A, #data
将累加器A的值和立即数进行与操作,结果保存到累加器A中
58
ANL direct, A
将累加器A的值和direct地址单元内的值进行与操作,结果保存到direct地址单元内
将16位立即数送数据指针DPTR寄存器
17
字节交换
SWAP A
累加器A高低4位数据交换
18
XCH A, Rn
将累加器A数据和寄存器Rn内的数据交换
19
XCH A, direct
将累加器A数据和direct地址单元内的数据交换
20
XCH A, @Ri
寄存器Ri内为RAM地址,将该地址单元内的数据与累加器A的数据交换
寄存器Ri内为RAM地址,将该地址单元内的数据送direct地址单元内
9
Mov @Ri, direct
寄存器Ri内为RAM地址,将direct地址单元内的数据送该地址单元内
10
Mov A, Rn
将寄存器Rn内的数据送累加器A
11
Mov Rn, A
将累加器A内的数据送寄存器Rn
12
Mov A, direct
89
DJNZ direct, rel
Direct地址单元的值减1后,If(该值!=0)则PC加3再加上rel作为目标地址
90
布尔条件转移
JC rel
If(CY=1)则PC加2再加上rel作为目标地址
91
JNC rel
If(CY=0)则PC加2再加上rel作为目标地址
92
JB bit, rel
If(bit位=1)则PC加3再加上rel作为目标地址
将bit位地址内置1
106
位与
ANL C, bit
将Cy和bit位地址中的值进行与操作后,结果送Cy
107
ANL C, /bit
bit位地址中的值取反后再与Cy进行与操作,结构送Cy
108
位或
ORL C, bit
将Cy和bit位地址中的值进行或操作后,结果送Cy
109
ORL C, /bit
bit位地址中的值取反后再与Cy进行或操作,结构送Cy
62
ORL A, @Ri
寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行或操作,结果保存到累加器A中
63
ORL A, #data
将累加器A的值和立即数进行或操作,结果保存到累加器A中
64
ORL direct, A
将累加器A的值和direct地址单元内的值进行或操作,结果保存到direct地址单元内
21
XCHD A, @Ri
寄存器Ri内为RAM地址,将该地址单元内的数据低4位与的低4位交换
22
与外部RAM传送
MOVX @DPTR, A
将累加器A的数据送数据指针DPTR寄存器所指外部RAM地址单元内
23
MOVX A , @DPTR
将DPTR寄存器所指外部RAM地址单元内的数据送累加器A
相关文档
最新文档