51单片机:汇编指令集总结

运算类:

指令操作数1操作数2

                      ADD/ADDC——加法/带进位的加法

                      SUBB——带借位的减法

ARn
直接地址
@Ri
#立即数
MUL/DIV——乘法/除法AB

                     INC/DEC——自增/自减

                     ***INC还可以INC DPTR——数据指针自增

A
Rn
@Ri
直接地址
ANL/ORL/XRL——与/或/异或ARn
直接地址

                      @Ri

#立即数
直接地址A
#立即数

                    CLR/CPL——清零/取反

                    DA——十进制加法调整

                    RL/RR——循环左移/循环右移

                    RLC/RRC——带进位循环左移/带进位循环右移

                    SWAP——高低四位交换

A
XCH——交换字节A

                       Rn

直接地址
@Ri
XCHD——交换后四位A

                      @Ri

赋值类

指令操作数1操作数2
MOV——复制字节

 

ARn
直接地址
@Ri
#立即数
RnA
直接地址
#立即数
直接地址A
Rn
直接地址
@Ri

                   #立即数

@RiA
直接地址
#立即数
DPTR#16位立即数
MOVC——复制程序(代码)存储器ROM字节A

                 @A+DPTR

@A+PC
MOVX——复制外部(数据)存储器字节A@Ri

                   @DPTR

@RiA
@DPTR

位操作

指令操作数1操作数2
SETB/CLR/CPL——置位/清零取反C
位地址
ANL/ORL——与/或C位地址
/位地址——先取反
MOV——复制位C位地址
位地址C
JC/JNC——C=1跳/C=0跳相对地址
JB/JNB/JBC——位=1跳/位=0跳/位=1跳且清零位位地址相对地址

控制类

指令操作数1操作数2

                               ACALL——调用子程序(11位地址)

                               AJMP——无条件跳(11位地址)

11位地址

                               LCALL——调用子程序(16位地址)

                               LJMP——无条件跳(16位地址)

16位地址

                               SJMP——无条件跳(相对地址)

                               JZ/JNZ——A=0跳/A!=0跳

相对地址(下一条指令地址-128~+127)
JMP——无条件跳到A+DPTR@A+DPTR
CJNE——比较字节,不等则跳A,直接地址相对地址
A,#立即数
Rn,#立即数
@Ri,#立即数
DJNZ——递减后若不为零跳Rn相对地址
直接地址
PUSH/POP——入栈/出栈直接地址
RET——从子程序返回
RETI——从中断返回
NOP——无作用
/

对操作数以外有影响的指令:

ADD/ADDC

D7进位,CY=1;否则CY=0

D3进位,AC=1;否则AC=0
有符号数溢出时,OV=1;否则OV=0
SUBBD7借位,CY=1;否则CY=0
D3借位,AC=1;否则AC=0
有符号数溢出时,OV=1;否则OV=0
MULCY=0
乘积大于0xFF,OV=1;否则OV=0
DIVCY=0
除数是0,OV=1;否则OV=0
DAD7进位,CY=1
CJNE

操作数1<操作数2,CY=1;否则CY=0

PUSHSP+1
POPSP-1
ACALL/LCALLSP+2
RET/RETISP-2

 END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值