51单片机指令表

助记符指令说明字节数周期数
(数据传递类指令)
MOVA,Rn 寄存器传送到累加器11
MOVA,direct 直接地址传送到累加器21
MOVA,@Ri累加器传送到外部RAM(8 地址)11
MOVA,#data立即数传送到累加器21
MOVRn,A累加器传送到寄存器11
MOVRn,direct直接地址传送到寄存器22
MOVRn,#data累加器传送到直接地址21
MOVdirect,Rn寄存器传送到直接地址21
MOVdirect,direct直接地址传送到直接地址32
MOVdirect,A累加器传送到直接地址21
MOVdirect,@Ri间接RAM 传送到直接地址22
MOVdirect,#data立即数传送到直接地址32
MOV@Ri,A直接地址传送到直接地址12
MOV@Ri,direct直接地址传送到间接RAM21
MOV@Ri,#data立即数传送到间接RAM22
MOVDPTR,#data1616 位常数加载到数据指针31
MOVCA,@A+DPTR代码字节传送到累加器12
MOVCA,@A+PC代码字节传送到累加器12
MOVXA,@Ri外部RAM(8 地址)传送到累加器12
MOVXA,@DPTR外部RAM(16 地址)传送到累加器12
MOVX@Ri,A累加器传送到外部RAM(8 地址)12
MOVX@DPTR,A累加器传送到外部RAM(16 地址)12
PUSHdirect直接地址压入堆栈22
POPdirect直接地址弹出堆栈22
XCHA,Rn寄存器和累加器交换11
XCHA, direct直接地址和累加器交换21
XCHA, @Ri间接RAM 和累加器交换11
XCHDA, @Ri间接RAM 和累加器交换低4 位字节11
(算术运算类指令)
INCA累加器加111
INCRn寄存器加111
INCdirect直接地址加121
INC@Ri间接RAM 加111
INCDPTR数据指针加112
DECA累加器减111
DECRn寄存器减111
DECdirect直接地址减122
DEC@Ri间接RAM 减111
MULAB累加器和B 寄存器相乘14
DIVAB累加器除以B 寄存器14
DAA累加器十进制调整11
ADD A,Rn 寄存器与累加器求和 1 1
ADDA,direct直接地址与累加器求和21
ADDA,@Ri间接RAM 与累加器求和11
ADDA,#data立即数与累加器求和21
ADDCA,Rn寄存器与累加器求和(带进位)11
ADDCA,direct直接地址与累加器求和(带进位)21
ADDCA,@Ri间接RAM 与累加器求和(带进位)11
ADDCA,#data立即数与累加器求和(带进位)21
SUBBA,Rn累加器减去寄存器(带借位)11
SUBBA,direct累加器减去直接地址(带借位)21
SUBBA,@Ri累加器减去间接RAM(带借位)11
SUBBA,#data累加器减去立即数(带借位)21
(逻辑运算类指令)
ANLA,Rn寄存器“与”到累加器11
ANLA,direct直接地址“与”到累加器21
ANLA,@Ri间接RAM“与”到累加器11
ANLA,#data立即数“与”到累加器21
ANLdirect,A累加器“与”到直接地址21
ANLdirect, #data立即数“与”到直接地址32
ORLA,Rn寄存器“或”到累加器12
ORLA,direct直接地址“或”到累加器21
ORLA,@Ri间接RAM“或”到累加器11
ORLA,#data立即数“或”到累加器21
ORLdirect,A累加器“或”到直接地址21
ORLdirect, #data立即数“或”到直接地址31
XRLA,Rn寄存器“异或”到累加器12
XRLA,direct直接地址“异或”到累加器21
XRLA,@Ri间接RAM“异或”到累加器11
XRLA,#data立即数“异或”到累加器21
XRLdirect,A累加器“异或”到直接地址21
XRLdirect, #data立即数“异或”到直接地址31
CLRA累加器清零12
CPLA累加器求反11
RLA累加器循环左移11
RLCA带进位累加器循环左移11
RRA累加器循环右移11
RRCA带进位累加器循环右移11
SWAPA累加器高、低4 位交换11
(控制转移类指令)
 
JMP@A+DPTR 相对DPTR 的无条件间接转移12
JZrel 累加器为0 则转移22
JNZrel 累加器为1 则转移22
CJNEA,direct,rel比较直接地址和累加器,不相等转移32
CJNEA,#data,rel比较立即数和累加器,不相等转移32
CJNERn,#data,rel比较寄存器和立即数,不相等转移22
CJNE@Ri,#data,rel比较立即数和间接RAM,不相等转移32
DJNZRn,rel寄存器减1,不为0 则转移32
DJNZdirect,rel直接地址减1,不为0 则转移32
NOP  空操作,用于短暂延时11
ACALLadd11绝对调用子程序22
LCALLadd16长调用子程序32
RET  从子程序返回12
RETI  从中断服务子程序返回12
AJMPadd11无条件绝对转移22
LJMPadd16无条件长转移32
SJMPrel无条件相对转移22
(布尔指令)
 
CLRC 清进位位11
CLRbit 清直接寻址位21
SETBC 置位进位位11
SETBbit 置位直接寻址位21
CPLC 取反进位位11
CPLbit 取反直接寻址位21
ANLC,bit直接寻址位“与”到进位位22
ANLC,/bit直接寻址位的反码“与”到进位位22
ORLC,bit直接寻址位“或”到进位位22
ORLC,/bit直接寻址位的反码“或”到进位位22
MOVC,bit直接寻址位传送到进位位21
MOVbit, C进位位位传送到直接寻址22
JCrel如果进位位为1 则转移22
JNCrel如果进位位为0 则转移22
JBbit,rel如果直接寻址位为1 则转移32
JNBbit,rel如果直接寻址位为0 则转移32
JBCbit,rel直接寻址位为1 则转移并清除该位22

 

 

 

(伪指令)
ORG指明程序的开始位置  
DB定义数据表  
DW定义16 位的地址表  
EQU给一个表达式或一个字符串起名  
DATA 给一个8 位的内部RAM 起名  
XDATA给一个8 位的外部RAM 起名  
BIT给一个可位寻址的位单元起名  
END指出源程序到此为止  

 

(指令中的符号标识)
Rn工作寄存器R0-R7
Ri工作寄存器R0 和R1
@Ri间接寻址的8 位RAM 单元地址(00H-FFH)
#data88 位常数
#data1616 位常数
addr1616 位目标地址,能转移或调用到64KROM 的任何地方
addr1111 位目标地址,在下条指令的2K 范围内转移或调用
Rel8 位偏移量,用于SJMP 和所有条件转移指令,范围-128~+127
Bit片内RAM 中的可寻址位和SFR 的可寻址位
Direct直接地址,范围片内RAM 单元(00H-7FH)和80H-FFH
$指本条指令的起始位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值