视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
51单片机指令表
2025-09-30 22:55:59 责编:小OO
文档

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
ADDA,Rn寄存器与累加器求和11
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 位目标地址,能转移或调用到KROM 的任何地方

addr1111 位目标地址,在下条指令的2K 范围内转移或调用

Rel8 位偏移量,用于SJMP 和所有条件转移指令,范围-128~+127
Bit片内RAM 中的可寻址位和SFR 的可寻址位

Direct直接地址,范围片内RAM 单元(00H-7FH)和80H-FFH
$指本条指令的起始位置
下载本文
显示全文
专题