MCS-51指令表
mcs_51的指令表
MCS-51 单片机指令表(共111条指令)
表D.1 8位数据传送指令
表D.3 外部数据传送类指令
注:P C←PC+1 , A←A+PC
表D.6 逻辑运算类指令
续表
表D.9 其他转移类指令(子程序调用和返回指令,空操作指令)
MCS-51单片机指令简表
MCS-51 指令表
MCS-51单片机指令对标志位的影响状况表
MCS-51指令代码(首字节操作码)速查表(反汇编)高四位
↑→低四位
高四位
■红字:数据传送指令■绿字斜体:兼容8048的指令
MCS-51单片机指令表
MCS-51单片机指令表
序号__-__-__年__-__序号__-__
附录1MCS-51单片机指令表
数据传送类指令
指令格式指令功能字节MOVA,RnRn内容传送到A1MOVA,direct 直接地址内容传送到A2MOVA,@Ri间接RAM单元内容送A1MOVA,#data立即数送到A2MOVRn,AA内容送到Rn1MOVRn,direct直接地址内容传送到Rn2MOVRn,#data立即数传送到Rn2MOVdirect,AA传送到直接地址2MOVdirect,RnRn传送到直接地址2MOVdirect2,直接地址传送到直接地址
3
direct1
MOVdirect,@Ri间接RAM内容传送到直接地址2MOVdirect,
#data立即数传送到直接地址3MOV@Ri,AA内容送间接RAM单元
1MOV@Ri,direct直接地址传送到间接__@Ri,#data立即数传送到间接__CA,@A+DPTR代码字节送A(DPTR为基址)1MOVCA,@A+PC代码字节送A(PC为基址)1MOVXA,@Ri外部RAM(8地址)内容传送到
A1MOVXA,@DPTR外部RAM内容(16地址)传送到A1__,#data1616位常数加载到数据指针1MOVX@Ri,AA内容传送到外部RAM(8地
址)1MOVX@DPTR,AA内容传送到外部RAM(16地址)1PUSHdirect直接
地址压入堆栈2POPdirect直接地址弹出堆栈2XCHA,RnRn内容和A交换1XCHA,direct直接地址和A交换2XCHA,@Ri间接RAM内容A交换
MCS-51单片机汇编指令集
MCS-51单片机汇编指令集
2009-06-01 13:56
MCS-51单片机汇编指令集
(1)数据传送类指令(7种助记符)
1.MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;
2.MOVC(Move Code)读取程序存储器数据表格的数据传送;
3.MOVX (Move External RAM) 对外部RAM的数据传送;
4.XCH (Exchange) 字节交换;
5.XCHD (Exchange low-order Digit) 低半字节交换;
6.PUSH (Push onto Stack) 入栈;
7.POP (Pop from Stack) 出栈;
(2)算术运算类指令(8种助记符)
1.ADD(Addition) 加法;
2.ADDC(Add with Carry) 带进位加法;
3.SUBB(Subtract with Borrow) 带借位减法;
4.DA(Decimal Adjust) 十进制调整;
5.INC(Increment) 加1;
6.DEC(Decrement) 减1;
7.MUL(Multiplication、Multiply) 乘法;
8.DIV(Division、Divide) 除法;
(3)逻辑运算类指令(10种助记符)
1.ANL(AND Logic) 逻辑与;
2.ORL(OR Logic) 逻辑或;
3.XRL(Exclusive-OR Logic) 逻辑异或;
4.CLR(Clear) 清零;
5.CPL(Complement) 取反;
6.RL(Rotate left) 循环左移;
8051单片机指令表
MCS-51单片机指令表 助记符 指令说明 字节数 周期数 (数据传递类指令) MOV A,Rn 寄存器传送到累加器 1 1 MOV A,direct 直接地址传送到累加器 2 1 MOV A,@Ri 累加器传送到外部RAM(8 地址) 1 1 MOV A,#data 立即数传送到累加器 2 1 MOV Rn,A 累加器传送到寄存器 1 1 MOV Rn,direct 直接地址传送到寄存器 2 2 MOV Rn,#data 累加器传送到直接地址 2 1 MOV direct,Rn 寄存器传送到直接地址 2 1 MOV direct,direct 直接地址传送到直接地址 3 2 MOV direct,A 累加器传送到直接地址 2 1 MOV direct,@Ri 间接RAM 传送到直接地址 2 2 MOV direct,#data 立即数传送到直接地址 3 2 MOV @Ri,A 直接地址传送到直接地址 1 2 MOV @Ri,direct 直接地址传送到间接RAM 2 1 MOV @Ri,#data 立即数传送到间接RAM 2 2 MOV 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 2 POP direct 直接地址弹出堆栈 2 2 XCH A,Rn 寄存器和累加器交换 1 1 XCH 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 立即
51指令汇总表
MCS51单片机指令汇总表
51指令概况:
44个助记符、33种功能、111条指令、255种机器码。
111条指令中:指令长度──单字节49、双字节46、三字节16
执行时间──单周期64、双周期45、四周期2
计算机指令执行时间的相关概念:
●时钟——利用振荡电路产生稳定、均匀的方波(脉冲),作为所有电路动作的节拍信号。(保
证数字电路动作的步调一致。几百万、上千万个门电路不能各自为政!)
●时钟周期——振荡电路的振荡周期,这是指令动作的最小时间单位。
●机器周期——固定的若干时钟周期作为一个较大时间单位,这是完成指令一个分解动作需要
的时间。51单片机是以12个时钟周期为一个机器周期。
●指令周期——执行一条指令需要的机器周期数(只能是整数)。
注意:从机器周期的定义可以看出,一条指令的执行时间是以机器周期为单位,不是以时钟周期为单位。这也有助于反过来理解为什么有机器周期这个单位。
111条指令分为5类:
数据传送29条(8个助记符)
算术操作24条(8个助记符)
逻辑操作24条(9个助记符)
控制转移17条(13个助记符)
布尔操作17条(11个助记符,其中与前面重复5个)
下面的指令表中,“字节数”一栏是该指令翻译成机器码(2进制形式)的长度,指令长度是以字节为单位,或1字节、或2字节、或3字节(其它CPU的指令系统可能还有更长的),不存在非整数字节的情况。
下面的指令表中,“振荡器周期”一栏就是时钟周期数,51单片机以12个振荡周期=1个机器周期,可以看出51的指令执行时间或是1机器周期、或是2机器周期、或是4机器周期。
MCS-51指令及编码表
4
续表 机器码 [H] 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B4
字节数 1 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1
机器周期数 1 1 1 2 2 2 2 1 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 4 2 1 1 1 1 1 1 1 1 1 1 2 2 2
指令助记符 XRL XRL XRL JNZ ACALL ORL JMP MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV SJMP AJMP ANL MOVC DIV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV ACALL MOV
机器周期数 1 1 1 1 1 1 1 1 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 1 1 1 1 1 1 1 1 1
指令助记符 ORL ORL ORL ORL ORL ORL ORL ORL ORL JNC ACALL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL JZ AJMP XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL
MCS-51单片机指令总表
MCS-51指令系统中的常用符号说明
Rn——当前选中的寄存器区中的8个工作寄存器R0~R7(n=0~7)。
Ri——当前选中的寄存器区中的2个工作寄存器R0、R1(i=0,1)。
direct—8位的内部数据存储器单元中的地址。
#data——包含在指令中的8位常数。
#data16——包含在指令中的16位常数。
addr16——16位目的地址。
addr11——11位目的地址。
rel——8位带符号的偏移字节,简称偏移量,范围为+127~-128。
DPTR——数据指针,可用作16位地址寄存器。
bit——内部RAM或专用寄存器中的直接寻址位。
A——累加器。
B——专用寄存器,在执行乘法和除法前用于存放乘数和除数。执行后存放乘法的高8位结果和除法的余数。
C——进位标志,可已作为进位位或布尔处理机中的位累加器。
@——间址寄存器或基址寄存器的前缀,如@Ri,@A+DPTR。
/ ——位操作数的前缀,表示对该位操作数取反,如/bit。
(×)——片内RAM的直接地址中的内容。
(Rn)——由某寄存器间接寻址的单元中的内容。
←箭头左边的内容被箭头右边的内容所代替。
说明:这些符号只是为了起说明指示的作用,在具体写指令的时候,必须用实际含义的内容来替代。如direct,在写指令的时候,可以用20H之类的地址码来代替。
1、指令的基本格式
MCS-51单片机指令主要由标号、操作码、操作数、注释组成。例如:
LOOP:MOV R0, #20H ;将数据20H送到寄存器R0。
指令分类表
为了方便大家的学习和记忆,在下面章节中按功能的分类来介绍MCS-51的指令系统。
MCS-51单片机汇编指令集
MCS-51单片机汇编指令集
2009-06-01 13:56
MCS-51单片机汇编指令集
(1)数据传送类指令(7种助记符)
1.MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;
2.MOVC(Move Code)读取程序存储器数据表格的数据传送;
3.MOVX (Move External RAM) 对外部RAM的数据传送;
4.XCH (Exchange) 字节交换;
5.XCHD (Exchange low-order Digit) 低半字节交换;
6.PUSH (Push onto Stack) 入栈;
7.POP (Pop from Stack) 出栈;
(2)算术运算类指令(8种助记符)
1.ADD(Addition) 加法;
2.ADDC(Add with Carry) 带进位加法;
3.SUBB(Subtract with Borrow) 带借位减法;
4.DA(Decimal Adjust) 十进制调整;
5.INC(Increment) 加1;
6.DEC(Decrement) 减1;
7.MUL(Multiplication、Multiply) 乘法;
8.DIV(Division、Divide) 除法;
(3)逻辑运算类指令(10种助记符)
1.ANL(AND Logic) 逻辑与;
2.ORL(OR Logic) 逻辑或;
3.XRL(Exclusive-OR Logic) 逻辑异或;
4.CLR(Clear) 清零;
5.CPL(Complement) 取反;
6.RL(Rotate left) 循环左移;
MCS-51单片机指令周期表
MCS-51单片机指令周期表
mcs-51指令速查表
类别指令格式功能简述字节数周期MOV A,Rn寄存器送累加器11
MOV Rn,A累加器送寄存器11
MOV A,@Ri内部RAM单元送累加器11
MOV@Ri,A累加器送内部RAM单元11
MOV A,#data立即数送累加器21
MOV A,direct直接寻址单元送累加器21
MOV direct,A累加器送直接寻址单元21
MOV Rn,#data立即数送寄存器21
MOV direct,#data立即数送直接寻址单元32
MOV@Ri,#data立即数送内部RAM单元21
MOV direct,Rn寄存器送直接寻址单元22
数据传送类指令期
MOV Rn,direct直接寻址单元送寄存器22
MOV direct,@Ri内部RAM单元送直接寻址单元22
MOV@Ri,direct直接寻址单元送内部RAM单元22
MOV direct2,direct1直接寻址单元送直接寻址单元32
MOV DPTR,#data1616位立即数送数据指针32
MOVX A,@Ri外部RAM单元送累加器(8位地址)12
MOVX@Ri,A累加器送外部RAM单元(8位地址)12
MOVX A,@DPTR外部RAM单元送累加器(16位地址)12
MOVX@DPTR,A累加器送外部RAM单元(16位地址)12
MOVC A,@A+DPTR查表数据送累加器(DPTR为基址)12
MOVC A,@A+PC查表数据送累加器(PC为基址)12
XCH A,Rn累加器与寄存器交换11
算术运算类指令
XCH A,@Ri累加器与内部RAM单元交换11
MCS--51单片机指令
MCS--51单片机指令
一、数据传送类指令
1、内部数据存储器间数据传送指令
MOV A,#data
MOV A,direct
MOV A,Rn
MOV A,@Ri
MOV Rn,#data
MOV Rn,direct
MOV Rn,A
MOV direct,#data
MOV direct,A
MOV direct,Rn
MOV direct,@Ri
MOV direct,direct
MOV @Ri,#data
MOV @Ri,A
MOV @Ri,direct
2、以DPTR为目的的
MOV DPRT,#data 16
3、访问片外RAM
MOVX A,@DPTR
MOVX A,@Ri
MOVX @DPTR,A
MOVX @Ri,A
4、访问片外ROM
MOVC A,@A+DPTR ;(A) ←((A)+(DPTR))
MOVC A,@A+PC ;(PC) ←(PC)+1,(A) ←((A)+(PC))
5、数据交换指令
XCH A,direct ;(A) ↔(direct)
XCH A,@Ri ;(A) ↔((Ri))
XCH A,Rn ;(A) ↔(Rn)
XCHD A,@Ri ;(A3~0)↔ ((Rn)3~0)
SWAP A ;(A7~4)↔ (A3~0)
6、堆栈操作类指令
PUSH direct ;(SP)←(SP)+1,(SP)←(direct)
POP direct ;(direct)←(SP),(SP)←(SP)-1
二、算术运算类指令
1、加法指令
ADD A,#data
ADD A,direct
ADD A,@Ri
ADD A,Rn
2、带进位加法指令
3.1MCS-51单片机指令格式
3.1 MCS-51单片机指令格式
计算机的指令系统是表征计算机性能的重要指标,每种计算机都有自己的指令系统。MCS—51单片机的指令系统是一个具有255种代码的集合,绝大多数指令包含两个基本部分:操作码和操作数。操作码表明指令要执行的操作的性质;操作数说明参与操作的数据或数据所存放的地址。
MCS—51指令系统中所有程序指令是以机器语言形式表示,可分为单字节、双字节、三字节3种格式。
用二进制编码表示的机器语言由于阅读困难,且难以记忆。因此在微机控制系统中采用汇编语言指令来编写程序。本章介绍MCS—51指令系统就是以汇编语言来描述的。
表3-1汇编指令与指令代码
一条汇编语言指令中最多包含4个区段,如下所示:
标号:操作码目的操作数,源源操作数;注释
标号与操作码之间“:”隔开;
操作码与操作数之间用“空格”隔开;
目的操作数和源源操作数之间有“,”分隔;
操作数与注释之间用“;”隔开。
标号是由用户定义的符号组成,必须用英文大写字母开始。标号可有可无,若一条指令中有标号,标号代表该指令所存放的第一个字节存储单元的地址,故标号又称为符号地址,在汇编时,把该地址赋值给标号。
操作码是指令的功能部分,不能缺省。MCS—51指令系统中共有42种助记符,代表了33种不同的功能。例如MOV是数据传送的助记符。
操作数是指令要操作的数据信息。根据指令的不同功能,操作数的个数有3、2、1或没有操作数。例如MOV A,#20H,包含了两个操作数A和#20H,它们之间用“,”隔开。注释可有可无,加入注释主要为了便于阅读,程序设计者对指令或程序段作简要的功能说明,在阅读程序或调试程序时将会带来很多方便。
MCS-51单片机的指令
MCS-51单⽚机的指令
MCS-51单⽚机的指令
⼀.数据传送类指令(29条)
.1 通⽤传送指令(16条)
格式:MOV ⽬的操作数,源操作数
功能:把第⼆操作数指定的字节内容传送到第⼀操作数指定的单元中。不影响源操作数内容,不影响别的寄存器和标志。
根据⽬的操作数的不同,通⽤传送指令⼜分为以下⼏种类型:
1.1 以累加器A为⽬的操作数的传送类指令(4条)
指令助记符及功能说明如下:
⽬的操作数源操作数功能说明源操作数寻
址⽅式
MO V A, direct ;(A)←
(direct)
直接寻址
MO V A, @Ri ;(A)←
((Ri))
寄存器间接
寻址
MO V A, Rn ;(A)←
(Rn)
寄存器寻址
MO A, #data ;(A)←data ⽴即寻址
V
这类指令的功能是将源操作数送到⽬的操作数A中。指令执⾏后的结果:除了奇偶标志P始终跟踪A中数据的奇偶性外,不影响PSW中的其他标志位。
1.2 以Rn为⽬的操作数的传送类指令(3条)
指令助记符及功能说明如下:
⽬的操作数源操作数功能说明源操作数寻址
⽅式
MO
V
Rn, A ;(Rn)←(A) 寄存器寻址
MO V Rn, direct ;(Rn)←
(direct)
其中,Rn是R0,…,R7中的任意⼀个。
例1 若(A)=20H,则执⾏指令MOV R3, A后,(R3)=20H。注意:Rn寄存器之间不能直接传送数据。如指令“MOV R1, R7”是错误的。
该类指令执⾏后,不影响PSW中的标志位。
1.3. 以直接地址directX为⽬的操作数的传送类指令(5条)
指令助记符及功能说明如下:
MCS-51指令速查表
MCS—51指令速查表
PSW寄存器 C AC FO RSI RSO OV—P n=0,1,2,3,4,5,6,7;i=0,1 指令操作说明
MOV x,y ;x←y ,A,direct←Rn,@Rj,direct,#data ;
Rn,@Ri←A,direct,#data
DPTR←#data ; c y⇔bit
MOVX x,y ;x←y ,A⇔@Ri , @DPTR
MOVC x,y ;x←y,A←@A+DPTR , @A+PC
XCH x,y ;x<= =>y,A<= =>Rn , @Ri , direct
XCHD x,y ;A低四<= =>@Rj低四
SWAP A ;A低四<= =>A低四
PUSH direct ;加1压入
POP direct ;弹出减1
ADD x,y ;x←x+y,x=A,y≡Rn,@Ri , direct , #data * ADDC x,y ;x←x+y+cy,x=A,y≡Rn,@Ri , direct , #data * SUBB x,y ;x←x-y-cy,x=A,y≡Rn,@Ri , direct , #data * INC x ;x←x+1,x≡A,Rn , @Ri , direct , DPTR
DEC x ;x←x-1,x≡A,Rn , @Ri , direct
DA A ;对A进行十进制调整
MUL AB ;BA←A×B
DIV AB ;A/B,A←商,B←余
ANL x,y ;x←x∧y x=A,y≡Rn,@Ri , direct , #data; *
x≡direct , y≡A,#data
MCS-51单片机的指令集(分类)
MCS-51单片机的指令集
MCS-51系列单片机的指令系统,按功能分类可分为:数据传送、算术操作、逻辑操作、控制转移和布尔变量操作等五种。具体指令如下列表格所示:
1、数据传送类指令
2、算术操作类指令
3、逻辑操作类指令
4、控制转移类指令
5、布尔变量操作类指令
第三章 MCS-51汇编语言指令
如:MOV A,70H;(A)←(70H) ROM
PC 1110 0101 操作码
直接ຫໍສະໝຸດ Baidu址
分析
执行
PC PC
0111 0000
……
SFR …… ACC 01100110 …… 70H 01100110 ……
3.1.4 寄存器间接寻址 指令指定的某一寄存器的内容作为操作数地址。 可用来间接寻址的寄存器有R0、R1、堆栈指针SP 和数据指针DPTR。前面加@表示间接寻址。 可访问内部数据存储器或外部数据存储器。
不论何种汇编语言,其助记符都包括操作码和操作 数两部分。操作码指明了本条指令的功能,操作数代 表了指令的操作对象。 操作数指定了参与运算的数据或数据所在单元的 地址。如何得到这个地址称为寻址方式。
3.1 寻址方式
3.1.1 立即寻址 指令中跟在操作码后面的数据就是实际参与运算的 操作数,称为立即数。 其指令码形式为:
单字节指令 操作码 双字节指令 操作码 操作数 三字节指令 操作码 第一操作数 第二操作数
指令字节越多,占用的内存单元越多。 但是指令的执行时间长短并不和所占用的字节数的多 少成比例。如乘、除法为单字节指令,但执行时间最 长。
3.2.3 指令分类 MCS-51单片机的111条指令按功能分为以下五大类: ⑴ 数据传送类:29条 ⑵ 逻辑操作类:24条 ⑶ 算术操作类:24条 ⑷ 位操作类 :17条 ⑸ 控制转移类:17条
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MCS-51单片机指令汇总表
助记符指令说明字节数周期数
(数据传递类指令)
MOV A,Rn 寄存器传送到累加器 1 1 MOV A,direct 直接地址传送到累加器 2 1 MOV A,@Ri 累加器传送到外部RAM(8 地址) 1 1 MOV A,#data 立即数传送到累加器 2 1 MOV Rn,A 累加器传送到寄存器 1 1 MOV Rn,direct 直接地址传送到寄存器 2 2 MOV Rn,#data 累加器传送到直接地址 2 1 MOV direct,Rn 寄存器传送到直接地址 2 1 MOV direct,direct 直接地址传送到直接地址 3 2 MOV direct,A 累加器传送到直接地址 2 1 MOV direct,@Ri 间接RAM 传送到直接地址 2 2 MOV direct,#data 立即数传送到直接地址 3 2 MOV @Ri,A 直接地址传送到直接地址 1 2 MOV @Ri,direct 直接地址传送到间接RAM 2 1 MOV @Ri,#data 立即数传送到间接RAM 2 2 MOV 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 2 POP direct 直接地址弹出堆栈 2 2 XCH A,Rn 寄存器和累加器交换 1 1 XCH 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 2 CJNE 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 2 JB bit,rel 如果直接寻址位为1 则转移 3 2 JNB bit,rel 如果直接寻址位为0 则转移 3 2 JBC bit,rel 直接寻址位为1 则转移并清除该位 2 2
(伪指令)