最全面的51单片机汇编指令集及记忆方法_第1页
最全面的51单片机汇编指令集及记忆方法_第2页
最全面的51单片机汇编指令集及记忆方法_第3页
最全面的51单片机汇编指令集及记忆方法_第4页
最全面的51单片机汇编指令集及记忆方法_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

51单片机汇编指令集1)数据传送类指令(7种助记符)MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;

MOVC(MoveCode)读取程序存储器数据表格的数据传送;

MOVX(MoveExternalRAM)对外部RAM的数据传送;

XCH(Exchange)字节交换;

XCHD(Exchangelow-orderDigit)低半字节交换;

PUSH(PushontoStack)入栈;

POP(PopfromStack)出栈;(2)算术运算类指令(8种助记符)

ADD(Addition)加法;

ADDC(AddwithCarry)带进位加法;

SUBB(SubtractwithBorrow)带借位减法;

DA(DecimalAdjust)十进制调整;

INC(Increment)加1;

DEC(Decrement)减1;

MUL(Multiplication、Multiply)乘法;

DIV(Division、Divide)除法;

(3)逻辑运算类指令(10种助记符)

ANL(ANDLogic)逻辑与;

ORL(ORLogic)逻辑或;

XRL(Exclusive-ORLogic)逻辑异或;

CLR(Clear)清零;

CPL(Complement)取反;

RL(Rotateleft)循环左移;

RLC(RotateLeftthroughttheCarryflag)带进位循环左移;

RR(RotateRight)循环右移;

RRC(RotateRightthroughttheCarryflag)带进位循环右移;

SWAP(Swap)低4位与高4位交换;

(4)控制转移类指令(17种助记符)

ACALL(AbsolutesubroutineCall)子程序绝对调用;

LCALL(LongsubroutineCall)子程序长调用;

RET(Returnfromsubroutine)子程序返回;

RETI(ReturnfromInterruption)中断返回;

SJMP(ShortJump)短转移;

AJMP(AbsoluteJump)绝对转移;

LJMP(LongJump)长转移;

CJNE(CompareJumpifNotEqual)比较不相等则转移;

DJNZ(DecrementJumpifNotZero)减1后不为0则转移;

JZ(JumpifZero)结果为0则转移;

JNZ(JumpifNotZero)结果不为0则转移;

JC(JumpiftheCarryflagisset)有进位则转移;

JNC(JumpifNotCarry)无进位则转移;

JB(JumpiftheBitisset)位为1则转移;

JNB(JumpiftheBitisNotset)位为0则转移;

JBC(JumpiftheBitissetandClearthebit)位为1则转移,并清除该位;

NOP(NoOperation)空操作;

(5)位操作指令(1种助记符)

SETB(SetBit)位置1。

MCS-51系列单片机指令以A开头的指令有18条,分别为:

ACALLaddr11ADDA,RnADDA,directADDA,@RiADDA,#dataADDCA,Rn

ADDCA,directADDCA,@RiADDCA,#dataAJMPaddr11ANLA,RnANLA,directANLA,@RiANLA,#dataANLdirect,AANLdirect,#dataANLC,bitANLC,/bit

1、ACALLaddr11

指令名称:绝对调用指令

指令代码:A10A9A910001A7A6A5A4A3A2A1A0

指令功能:构造目的地址,进行子程序调用。其方法是以指令提供的11位地址(al0~a0),

取代PC的低11位,PC的高5位不变。

操作内容:

PC←(PC)+2

SP←(SP)+1

(SP)←(PC)7~0

SP←(SP)+1

(SP)←(PC)15~8

PC10~0←addrl0~0

字节数:2

机器周期:2

使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。

2、ADDA,Rn

指令名称:寄存器加法指令

指令代码:28H~2FH

指令功能:累加器内容与寄存器内容相加

操作内容:A←(A)+(Rn),n=0~7

字节数:1

机器周期;1

影响标志位:C,AC,OV

3、ADDA,direct

指令名称:直接寻址加法指令

指令代码:25H

指令功能:累加器内容与内部RAM单元或专用寄存器内容相加

操作内容:A←(A)+(direct)

字节数:2

机器周期:1

影响标志位:C,AC,OV

4、ADDA,@Ri’

指令名称:间接寻址加法指令

指令代码:26H~27H

指令功能:累加器内容与内部RAM低128单元内容相加

操作内容:A←(A)+((Ri)),i=0,1

字节数:1

机器周期:1

影响标志位:C,AC,OV

5、ADDA,#data

指令名称:立即数加法指令

指令代码:24H

指令功能:累加器内容与立即数相加

操作内容:A←(A)+data

字节数:2

机器周期:1

影响标志位:C,AC,OV

6、ADDCA,Rn

指令名称:寄存器带进位加法指令

指令代码:38H~3FH

指令功能:累加器内容、寄存器内容和进位位相加

操作内容:A←(A)+(Rn)+(C),n=0~7

字节数:1

机器周期:1

影响标志位:C,AC,OV

7、ADDCA,direct

指令名称:直接寻址带进位加法指令

指令代码:35H

指令功能:累加器内容、内部RAM低128单元或专用寄存器内容与进位位加

操作内容:A←(A)+(direct)+(C)

字节数:2

机器周期:1

影响标志位:C,AC,OV

8、ADDCA,@Ri

指令名称:间接寻址带进位加法指令

指令代码:36H~37H

指令功能:累加器内容、内部RAM低128单元内容及进位位相加

操作内容:A←(A)+((Ri))+(C),i=0,1

字节数:1

机器周期:1

影响标志位:C,AC,OV

9、ADDCA,#data

指令名称:立即数带进位加法指令

指令代码:34H

指令功能:累加器内容、立即数及进位位相加

操作内容:A←(A)+data+(C)

字节数:2

机器周期:1

影响标志位:C,AC,OV

10、AJMPaddr11

指令名称:绝对转移指令

指令代码:A10A9A810001A7A6A5A4A3A2A1A0

指令功能:构造目的地址,实现程序转移。其方法是以指令提供的11位地址,取代PC的低11位,.而PC的高5位保持不变。

操作内容:PC←(PC)+2

PCl0~0←addrll

字节数:2

机器周期:2

使用说明:由于addrll的最小值是000H,最大值是7FFH,因此地址转移范围是2KB。

11、ANLA,Rn

指令名称:寄存器逻辑与指令

指令代码:58H~5FH

指令功能:累加器内容逻辑与寄存器内容

操作内容:A←(A)∧(Rn),n=0~7

字节数:1

机器周期:1

12、ANLA,direct

指令名称:直接寻址逻辑与指令

指令代码:55H

指令功能:累加器内容逻辑与内部RAM低128单元或专用寄存器内容

操作内容:A←(A)∧(diret)

字节数:2

机器周期:1

13、ANLA,@Ri

指令名称:间接寻址逻辑与指令

指令代码:56H~57H

指令功能:累加器内容逻辑与内部RAM低128单元内容

操作内容:A←(A)∧((Ri))i=0,1

字节数:1

机器周期:1

14、ANLA,#data

指令名称:立即数逻辑与指令

指令代码:54H

指令功能:累加器内容逻辑与立即数

操作内容:A←(A)∧data

字节数:2

机器周期:1

15、ANLdirect,A

指令名称:累加器逻辑与指令

指令代码:52H

指令功能:内部RAM低128单元或专用寄存器内容逻辑与累加器内容

操作内容:direct←(A)∧(direct)

字节数:2

机器周期:1

16、ANLdirect,#data

指令名称:逻辑与指令

指令代码:53H

指令功能:内部RAM低128单元或专用寄存器内容逻辑与立即数

操作内容:direct←(direct)∧data

字节数:3

机器周期:2

17、ANLC,bit

指令名称:位逻辑与指令

指令代码:82H

指令功能:进位标志逻辑与直接寻址位

操作内容:C←(C)∧(bit)

字节数:2

机器周期:2

18、ANLC,/bit

指令名称:位逻辑与指令

指令代码:B0H

指令功能:进位标志逻辑与直接寻址位的反

操作内容:C←(C)∧(bit)

字节数:2

机器周期:2

MCS-51系列单片机指令以C开头的指令有10条,分别为:

CJNEA,dircet,relCJNEA,#data,relCJNERn,#data,relCJNE@Ri,#data,relCLRACLRCCLRbitCPLACPLCCPLbit

1、CJNEA,dircet,rel

指令名称:数值比较转移指令

指令代码:B5H

指令功能:累加器内容与内部RAM低128字节或专用寄存器内容比较,不等则转移。

操作内容:若(A)=(direct),则PC←(PC)+3,C←0

若(A)>(direct),则PC←(PC)+3+rel,C←0

若(A)<(direct),则PC←(PC)+3+rel,C←1

字节数:3

机器周期:2

2、CJNEA,#data,rel

指令名称:数值比较转移指令

指令代码:B4H

指令功能:累加器内容与立即数比较,不等则转移。

操作内容:若(A)=data,则PC←(PC)+3,C←0

若(A)>data,则PC←(PC)+3+rel,C←0

若(A)<data,则PC←(PC)+3+rel,C←1

字节数:3

机器周期:2

3、CJNERn,#data,rel

指令名称:数值比较转移指令

指令代码:B8H~BFH

指令功能:寄存器内容与立即数比较,不等则转移。

操作内容:若(Rn)=data,则PC←(PC)+3,C←0

若(Rn)>data,则PC←(PC)+3+rel,C←0

若(Rn)<data,则PC←(PC)+3+rel,C←1

字节数:3

机器周期:2

4、CJNE@Ri,#data,rel

指令名称:数值比较转移指令

指令代码:B6H~B7H

指令功能:内部RAM低128单元内容与立即数比较,不等则转移。

操作内容:若((Ri))=data,则PC←(PC)+3,C←0

若((Ri))>data,则PC←(PC)+3+rel,C←0

若((Ri))<data,则PC←(PC)+3+rel,C←1

字节数:3

机器周期:2

5、CLRA

指令名称:累加器清0指令

指令代码:E4H

指令功能:累加器清0

操作内容:A←0

字节数:1

机器周期:1

6、CLRC

指令名称:进位标志清0指令

指令代码:C3H

指令功能:进位位清0

操作内容:C←0

字节数:1

机器周期:1

7、CLRbit

指令名称:直接寻址位清0指令

指令代码:C2H

指令功能:直接寻址位清0

操作内容:bit←0

字节数:2

机器周期:1

8、CPLA

指令名称:累加器取反指令

指令代码:F4H

指令功能:累加器取反

操作内容:A←(A)

字节数:1

机器周期:1

9、CPLC

指令名称:进位标志取反指令

指令代码:B3H

指令功能:进位标志位状态取反

操作内容:C←(c取反)

字节数:1

机器周期:1

10、CPLbit

指令名称:直接寻址位取反指令

指令代码:B2H

指令功能:直接寻址位取反

操作内容:bit←(bit取反)

字节数:2

机器周期:1

MCS-51系列单片机指令以D开头的指令有8条,分别为:

DAADECADECRnDECdirectDEC@RiDIVABDJNZRn,relDJNZdirect,rel

1、DAA

指令名称:十进制调整指令

指令代码:D4H

指令功能:对BCD码加法运算的结果进行有条件的修正

操作内容:若(A)3~0>9∨(AC)=1,则A3~0←(A)3~0+6

若(A)7~4>9∨(C)=1,则A7~4←(A)7~4+6

若(A)7~4=9∧(A)3~0>9,则A7~4←(A)7~4+6

字节数:1

机器周期:1

使用说明:DA指令不影响溢出标志

2、DECA

指令名称:累加器减1指令

指令代码:14H

指令功能:累加器内容减1

操作内容:A←(A)-1

字节数:1

机器周期:1

3、DECRn

指令名称:寄存器减1指令

指令代码:18H~1FH

指令功能:寄存器内容减1

操作内容:Rn←(Rn)-1,n=0~7

字节数:1

机器周期:1

4、DECdirect

指令名称:直接寻址减1指令

指令代码:15H

指令功能:内部RAM低128单元及专用寄存器内容减1

操作内容:direct←(direct)-1

字节数:2

机器周期:1

5、DEC@Ri

指令名称:间接寻址减1指令

指令代码:16H~17H

指令功能:内部RAM低128单元内容减1

操作内容:(Ri)←((Ri))-1,i=0,1

字节数:1

机器周期:1

6、DIVAB

指令名称:无符号数除法指令;

指令代码:84H

指令功能:A的内容被B的内容除。指令执行后,商存于A中,余数存于B中。

操作内容:A←(A)/(B)的商

B←(A)/(B)的余数

字节数:1

机器周期:4

影响标志位:C被清0;若B=00H,除法无法进行,并使OV=1;否则OV=0。

7、DJNZRn,rel

指令名称:寄存器减1条件转移指令

指令代码:D8H~DFH

指令功能:寄存器内容减1。不为0转移;为0顺序执行。

操作内容:Rn←(Rn)-l,n=0~7

若(Rn)≠0,则PC←(PC)+2+rel

若(Rn)=0,则PC←(PC)+2

字节数:2

机器周期:2

8、DJNZdirect,rel

指令名称:直接寻址单元减1条件转移指令

指令代码:D5H

指令功能:内部RAM低128单元内容减1。不为0转移;为0顺序执行。

操作内容:direct←(direct)-1

若(direct)≠0,则PC←(PC)+3+rel

若(direct)=0,则PC←(PC)+3

字节数:3

机器周期:2

MCS-51系列单片机指令以I开头的指令有5条,分别为:

INCAINCRnINCdirectINC@RiINCDPTR

1、INCA

指令名称:累加器加1指令

指令代码:04H

指令功能:累加器内容加1

操作内容:A←(A)+1

字节数:1

机器周期:1

2、INCRn

指令名称:寄存器加1指令

指令代码:08H~0FH

指令功能:寄存器内容加1

操作内容:Rn←(Rn)+1,n=0~7

字节数:1

机器周期:1

3、INCdirect

指令名称:直接寻址单元加1指令

指令代码:05H

指令功能:内部BAM低128单元或专用寄存器内容加1

操作内容:direct←(direct)+1

字节数:2

机器周期:1

4、INC@Ri指令名称:间接寻址单元加1指令

指令代码:06H~07H

指令功能:内部RAM低128单元内容加1

操作内容:(Ri)←((Ri))+1;i=0,l

字节数:1

机器周期:1

5、INCDPTR

指令名称:16位数据指针加1指令

指令代码:A3H

指令功能:数据指针寄存器DPTR内容加1

操作内容:DPTR←(DPTR)+1

字节数:1

机器周期:2

MCS-51系列单片机指令以J开头的指令有8条,分别为:

JBbit,relJBCbit,relJCrelJMP@A+DPTRJNBbit,relJNCrelJNZrelJZrel

1、JBbit,rel

指令名称:位条件转移指令。

指令代码:20H

指令功能:根据指定位的状态,决定程序是否转移。若为1则转移;否则顺序执行。

操作内容:若(bit)=1,则PC←(PC)+3+rel

若(bit)≠1,则PC←(PC)+3

字节数:3

机器周期:2

2、JBCbit,rel

指令名称:位条件转移清0指令

指令代码:10H

指令功能:对指定位的状态进行测试。若为1,则把该位清0并进行转移;否则程序顺序执行。

操作内容:若(bit)=1,则PC←(PC)+3+rel,bit←0

若(bit)≠1,则PC←(PC)+3

字节数:3

机器周期:2

3、JCrel

指令名称:累加位条件转移指令

指令代码:40H

指令功能:根据累加位(C)的状态决定程序是否转移,若为1则转移,否则顺序执行。

操作内容:若(C)=1,则PC←(PC)+2+rel

若(C)≠1,则PC←(PC)+2

字节数:2

机器周期:2

4、JMP@A+DPTR

指令名称:无条件间接转移指令

指令代码:72H

指令功能:A内容与DPTR内容相加作为转移目的地址,进行程序转移。

操作内容:PC←(A)+(DPTR)

字节数:1

机器周期;2

5、JNBbit,rel

指令名称:位条件转移指令

指令代码:30H

指令功能:根据指定位的状态,决定程序是否转移。若为0则转移;否则顺序执行。

操作内容:若(bit)=0,则PC←(PC)+3+rel

若(bit)≠0,则PC←(PC)+3

字节数:3

机器周期:2

6、JNCrel

指令名称:累加位条件转移指令

指令代码:50H

指令功能:根据累加位(C)的状态决定程序是否转移。若为o则转移;否则顺序执行。

操作内容:若(C)=0,则PC←(PC)+2+rel

若(C)≠0,则PC←(PC)+2

字节数:2

机器周期:2

7、JNZrel

指令名称:判0转移指令

指令代码:70H

指令功能:累加位(A)的内容不为0,则程序转移;否则程序顺序执行。

操作内容:若(A)≠0,则PC←(PC)+2+rel

若(A)=0,则PC←(PC)+2

字节数:2

机器周期:2

8、JZrel

指令名称:判0转移指令

指令代码:60H

指令功能:累加位(A)的内容为o,则程序转移;否则程序顺序执行。

操作内容:若(A)=0,则PC←(PC)+2+rel

若(A)≠0,则PC←(PC)+2

字节数:2

机器周期:2

MCS-51系列单片机指令以L开头的指令就2条,分别为:

LCALLaddr16LJMPaddrl6

1、LCALLaddr16

指令名称:长调用指令

指令代码:12H

指令功能:按指令给定地址进行子程序调用

操作内容:PC←(PC)+3

SP←(SP)+1

(SP)←(PC)7~0

SP←(SP)+1

(SP)←(PC)15~8

PC←addrl6

字节数:3

机器周期:2

使用说明:在64KB的范围内调用子程序

2、LJMPaddrl6

指令名称:长转移指令

指令代码:02H

指令功能:使程序按指定地址进行无条件转移

操作内容:PC←addrl6

字节数:3

机器周期:2

MCS-51系列单片机指令以M开头的指令有24条,分别为:

MOVA,RnMOVA,directMOVA,@RiMOVA,#dataMOVRn,AMOVRn,directMOVRn,#dataMOVdirect,AMOVdirect,RnMOVdirect2,direct1MOVdirect,@RiMOVdirect,#dataMOV@Ri,AMOV@Ri,directMOV@Ri,dataMOVC,bitMOVbit,CMOVDPTR,#datal6MOVCA,@A+DPTRMOVCA,@A+PCMOVXA,@RiMOVXA,@DPTRMOVX@Ri,AMOVX@DPTR,AMULAB

1、MOVA,Rn

指令名称:寄存器数据传送指令

指令代码:E8H~EFH

指令功能:寄存器内容送累加器

操作内容:A←(Rn),n=0~7

字节数:1

机器周期:1

2、MOVA,direct

指令名称:直接寻址数据传送指令

指令代码:E5H

指令功能:内部RAM低126单元或专用寄存器内容送累加器

操作内容:A←(direct)

字节数:2

机器周期:1

3、MOVA,@Ri

指令名称:间接寻址数据传送指令

指令代码:E6H~E7H

指令功能:内部RAM低128单元内容送累加器

操作内容:A←((Ri)),i=0,1

字节数:1

机器周期:1

4、MOVA,#data

指令名称:立即数据传送指令

指令代码:74H

指令功能:立即数送累加器

操作内容:A←data

字节数:2

机器周期:1

5、MOVRn,A

指令名称:累加器数据传送指令

指令代码:F8H~FFH

指令功能:累加器内容送寄存器

操作内容:Rn←(A)

字节数:1

机器周期:1

6、MOVRn,direct

指令名称:直接寻址数据传送指令

指令代码:A8H~AFH

指令功能:内部RAM低128单元或专用寄存器内容送累加器

操作内容:Rn←(direct),n=0~7

字节数:2

机器周期:2

7、MOVRn,#data

指令名称:立即数据传送指令

指令代码:78H~7FH

指令功能:立即数送寄存器

操作内容:Rn←data,n=0~7

字节数:2

机器周期:1

8、MOVdirect,A

指令名称:累加器数据传送指令

指令代码:F5H

指令功能:累加器内容送内部RAM低128单元或专用寄存器

操作内容:direct←(A)

字节数:2

机器周期:1

9、MOVdirect,Rn

指令名称:寄存器数据传送指令

指令代码:88H~8FH

指令功能:寄存器内容送内部RAM低128单元或专用寄存器

操作内容:direct←(Rn),n=0~7

字节数:2

机器周期:2

10、MOVdirect2,direct1

指令名称:直接寻址数据传送指令

指令代码:85H

指令功能:内部RAM低123单元或专用寄存器之间的相互传送

操作内容:direct2←(direct1)

字节数:3

机器周期:2

11、MOVdirect,@Ri

指令名称:间接寻址数据传送指令

指令代码:86H~87H

指令功能:内部RAM低128单元内容送内部RAM低128单元或专用寄存器

操作内容:direct←((Ri)),i=0,1

字节数:2

机器周期:2

12、MOVdirect,#data

指令名称:立即数传送指令

指令代码:75H

指令功能:立即数送内部RAM低128单元或专用寄存器

操作内容:direct←data

字节数:3

机器周期:2

13、MOV@Ri,A

指令名称:累加器数据传送指令

指令代码:F6H~F7H

指令功能:累加器内容送内部RAM低128单元

操作内容:(Ri)←(A),i=0,1

字节数:1

机器周期:1

14、MOV@Ri,direct

指令名称:直接寻址数据传送指令

指令代码:A6H~A7H

指令功能:内部RAM低128单元或专用寄存器内容送内部RAM低128单元

操作内容:(Ri)←(direct),i=0,1

字节数:2

机器周期:2

15、MOV@Ri,data

指令名称:立即数传送指令

指令代码:76H~77H

指令功能:立即数送内部RAM低128单元

操作内容:(Ri)←data,i=0,1

字节数:2

机器周期:1

16、MOVC,bit

指令名称:位数据传送指令

指令代码:A2H

指令功能:内部RAM可寻址位或专用寄存器的位状态送累加位C

操作内容:C←(bit)

字节数:2

机器周期:1

17、MOVbit,C

指令名称:累加位数据传送指令

指令代码:92H

指令功能:累加器状态送内部RAM可寻址位或专用寄存器的指定位

操作内容:bit←(C)

字节数:2

机器周期:2

18、MOVDPTR,#datal6

指令名称:+六位数据传送指令

指令代码:90H

指令功能:十六位立即数送数据指针

操作内容:DPH←datal5~8

DPL←data7~0

字节数:3

机器周期:2

19、MOVCA,@A+DPTR

指令名称:程序存储器读指令

指令代码:93H

指令功能:读程序存储器单元内容送累加器

操作内容:A←((A)+(DPTR))

字节数:1

机器周期:2

使用说明:变址寄存器A内容加基址寄存器DPTR内容时,低8位产生的进位直接加到高位,不影响进位标志。

20、MOVCA,@A+PC

指令名称:程序存储器读指令

指令代码:83H

指令功能:读程序存储器单元内容送累加器

操作内容:A←((A)+(PC))

字节数:1

机器周期:2

使用说明:同MOVCA,@A+DPTR指令(序号70)

21、MOVXA,@Ri

指令名称:寄存器间接寻址外部RAM读指令

指令代码:E2H~E3H

指令功能:读外部RAM低256单元数据送累加器

字节数:1

机器周期:2

22、MOVXA,@DPTR

指令名称:数据指针间接寻址外部RAM读指令

指令代码:E0H

指令功能:读外部RAM单元数据送累加器

操作内容:A1←((DPTR))

字节数:1

机器周期:2

23、MOVX@Ri,A

指令名称:寄存器间接寻址外部RAM写指令

指令代码:F2H~F3H

指令功能:把累加器内容写入外部RAM低256单元

操作内容:(Ri)←(A),i=1,0

字节数:1

机器周期:2

24、MOVX@DPTR,A

指令名称:数据指针间接寻址外部RAM写指令

指令代码:F0H

指令功能:把累加器内容写入外部RAM单元

操作内容:(DPTR)←(A)

字节数:1

机器周期:2

25、MULAB

指令名称:乘法指令

指令代码:A4H

指令功能:实现8位无符号数乘法运算。两个乘数分别放在累加器A和寄存器B中。乘积

为16位,低8位在B中,高8位在A中。

操作内容:AB←(A)×(B)

字节数:1

机器周期:4

影响标志位:进位标志复位。若乘积大于255,则OV标志置位;否则复位。

MCS-51系列单片机指令以N开头的指令只有1条,就是:

1、NOP

指令名称:空操作指令

指令代码;00H

指令功能:不执行任何操作,常用于产生一个机器周期的时间延迟。

操作内容:PC←(PC)+l

字节数:1

机器周期:1

MCS-51系列单片机指令以O开头的指令有8条,分别为:

ORLA,RnORLA,directORLA,@RiORLA,#dataORLdirect,AORLdirect,#dataORLC,bitORLC,/bit

1、ORLA,Rn

指令名称:逻辑或操作指令

指令代码:48H~4FH

指令功能:累加器内容与寄存器内容进行逻辑或操作

操作内容:A1←(A)∨(Rn),n=0~7

字节数:1

机器周期:1

2、ORLA,direct

指令名称:逻辑或操作指令

指令代码:45H

操作内容:A←(A)∨(direct)

字节数:2

机器周期:1

3、ORLA,@Ri

指令名称:逻辑或操作指令

指令代码:46H~47H

指令功能:累加器内容与内部RAM低128单元内容进行逻辑或操作

操作内容:A←(A)∨((Ri));i=0,1

字节数:1

机器周期:1

4、ORLA,#data

指令名称:逻辑或操作指令

指令代码:44H

指令功能:累加器内容与立即数进行逻辑或操作

操作内容:A←(A)∨data

字节数:2

机器周期:1

5、ORLdirect,A

指令名称:逻辑或操作指令

指令代码:42H

指令功能:内部RAM低128单元或专用寄存器内容与累加器内容进行逻辑或操作

操作内容:direct←(direct)∨(A)

字节数:2

机器周期:1

6、ORLdirect,#data

指令名称:逻辑或操作指令

指令代码:43H

指令功能:内部RAM低128单元或专用寄存器内容与立即数进行逻辑或操作。

操作内容:direct←(direct)∨data

字节数:3

机器周期:2

7、ORLC,bit

指令名称:位逻辑或操作指令

指令代码:72H

指令功能:累加位C状态与内部RAM可寻址位或专用寄存器指定位进行逻辑或操作

操作内容:C←(C)∨(bit)

字节数:2

机器周期:2

8、ORLC,/bit

指令名称:位反逻辑或操作指令

指令代码:A0H

指令功能:累加位C状态与内部RAM可寻址位或专用寄存器指定位的反进行逻辑或操作

操作内容:C←(C)∨(bit非)

字节数:2

机器周期:2

使用说明:指定位的状态取反后进行逻辑或操作,但并不改变指定位的原来状态。

MCS-51系列单片机指令以P开头的指令有2条,分别为:

POPdirectPUSHdirect

1、POPdirect

指令名称:出栈指令

指令代码:D0H

指令功能:堆栈栈顶单元的内容送内部RAM低128单元或专用寄存器

操作内容:direct←(SP)

SP←(SP)-1

字节数:2

机器周期:2

2、PUSHdirect

指令名称:进栈指令

指令代码:C0

指令功能:内部RAM低128单元或专用寄存器内容送堆栈栈顶单元

操作内容:SP←(SP)+1

(SP)←(direct)

字节数:2

机器周期:2

MCS-51系列单片机指令以R开头的指令有6条,分别为:

RETRETIRLARLCARRARRCA

1、RET

指令名称:子程序返回指令

指令代码:22H

指令功能:子程序返回

操作内容:PC15~8←((SP))

SP←(SP)-1

PC7~0←((SP))

SP←(SP)-1

字节数:1

机器周期:2

2、RETI

指令名称:中断返回指令

指令代码:32H

指令功能:中断服务程序返回

操作内容’:PC15?/FONT>8←((SP))

SP←(SP)-l

PC7~0←((SP))

SP←(SP)-1

字节数:1

机器周期:2

3、RLA

指令名称:循环左移指令

指令代码:23H

指令功能:累加器内容循环左移一位

操作内容:An+1←(An);n=0~6

A0←(A7)

字节数:1

机器周期:1

4、RLCA

指令名称:带进位循环左移指令

指令代码:33H

指令功能:累加器内容连同进位标志位循环左移一位

操作内容:An-1←(An);n=0~6

A0←(C)

C←(A7)

字节数:1

机器周期:1

5、RRA

指令名称:循环右移指令

指令代码:03H

指令功能:累加器内容循环右移一位

操作内容:An←(An+1);n=0~6

A7←(A0)

字节数:1

机器周期:1

6、RRCA

指令名称:带进位循环右移指令

指令代码:13H

指令功能:累加器内容连同进位标志位循环右移一位

操作内容:An←(An+1);n=0~6

A7←(C)

C←(A0)

字节数:1

机器周期:1

MCS-51系列单片机指令以S开头的指令有8条,分别为:

SETBcSETBbitSJMPrelSUBBA,RnSUBBA,directSUBBA,@RiSUBBA,#dataSWAPA

1、SETBc

指令名称:进位标志置位指令

指令代码:D.H

指令功能:进位标志位置位

操作内容:C←1

字节数:1

机器周期:1

2、SETBbit

指令名称:直接寻址位置位指令

指令代码:D2H

指令功能:内部RAM可寻址位或专用寄存器指定位置位

操作内容:bit←1

字节数:2

机器周期:1

3、SJMPrel

指令名称:短转移指令

指令代码:80H

指令功能:按指令提供的偏移量计算转移的目的地址,实现程序的无条件相对转移;

操作内容:PC←(PC)+2

PC←(PC)+rel

字节数:2

机器周期:2

使用说明:偏移量是8位二进制补码数,可实现程序的双向转移,其转移范围是(PC一26)一(PC+129)。其中PC值为本指令的地址。

4、SUBBA,Rn

指令名称:寄存器寻址带进位减法指令

指令代码:98H~9FH

指令功能:累加器内容减寄存器内容和进位标志位内容

操作内容:A←(A)-(Rn)-(C);n=0~7

字节数:1

机器周期:1

影响标志位:当够减时,进位标志位复位;不够减时,进位标志置位。当位3发生借位,AC置位;否则AC复位。当位6及位7不同时发生借位时,OV置位;否则OV复位。

5、SUBBA,direct

指令名称:直接寻址带进位减法指令

指令代码:95H

指令功能:累加器内容减内部RAM低128单元或专用寄存器和进位标志位内容

操作内容:A←(A)-(diret)-(C)

字节数:2

机器周期:1

影响标志位:同SUBBA,Rn指令(序号97)

6、SUBBA,@Ri

指令名称:间接寻址带进位减法指令

指令代码:96H~97H

指令功能:累加器内容减内部RAM低128单元内容及进位标志位内容

操作内容:A←(A)-((Ri))-(C);i=0,1

字节数:1

机器周期:1

影响标志位:同SUBBA,Rn指令(序号97)

7、SUBBA,#data

指令名称:立即数带进位减法指令

指令代码:94H

指令功能:累加器内容减立即数及进位标志内容

操作内容:A←(A)-data-(C)

字节数:2

机器周期:1

影响标志位:同SUBBA,Rn指令(序号97)

8、SWAPA

指令名称:累加器高低半字节交换指令

指令代码:C4H

指令功能:累加器内容的高4位与低4位交换

操作内容:(A)7?/FONT>4交换(A)3?/FONT>0

字节数:1

机器周期:1

MCS-51系列单片机指令以X开头的指令有10条,分别为:

XCHA,RnXCHA,directXCHA,@RiXCHDA,@RiXRLA,RnXRLA,directXRLA,@RiXRLA,#dataXRLdirect,AXRLdirect,#data

1、XCHA,Rn

指令名称:寄存器寻址字节交换指令

指令代码:C8H~CFH

指令功能:寄存器寻址字节

操作内容:(A)交换(Rn);n=0~7

字节数:1

机器周期:1

2、XCHA,direct

指令名称:直接寻址字节交换指令

指令代码:C5H

指令功能:累加器内容与内部RAM低128单元或专用寄存器内容交换

操作内容:(A)交换(direct)

字节数:2

机器周期:1

3、XCHA,@Ri

指令名称:间接寻址字节交换指令

指令代码:C6H~C7H

指令功能:累加器内容与内部RAM低128单元内容交换

操作内容:(A)交换((Ri));i=0,1

字节数:1

机器周期:1

4、XCHDA,@Ri

指令名称:半字节交换指令

指令代码:D6H~D7H

指令功能:累加器内容低4位与内部RAM低128单元低4位交换

操作内容:(A)3~0交换((Ri))3~0;i=0,1

字节数:1

机器周期:1

5、XRLA,Rn

指令名称;逻辑异或操作指令

指令代码:68H~6FH

指令功能:累加器内容与寄存器内容进行逻辑异或操作

操作内容:A←(A)异或(Rn);n=0~7

字节数:1

机器周期:1

6、XRLA,direct

指令名称:逻辑异或操作指令

指令代码:65H

指令功能:累加器内容与内部RAM低128单元或专用寄存器内容进行逻辑异或操作

操作内容:A←(A)异或(direct)

字节数:2

机器周期:1

7、XRLA,@Ri

指令名称:逻辑异或指令

指令代码:66H~67H

指令功能:累加器与内部RAM低128单元内容进行逻辑异或操作

操作内容:A←(A)异或((Ri));i=0,1

字节数:1

机器周期:1

8、XRLA,#data

指令名称:逻辑异或指令

指令代码:64H

指令功能:累加器内容与立即数进行逻辑异或操作

操作内容:A1?/FONT>(A)异或data

字节数:2

机器周期:1

9、XRLdirect,A

指令名称:逻辑异或操作指令

指令代码:62H

指令功能:累加器内容与内部RAM低128单元或专用寄存器内容进行逻辑异或操作

操作内容:direct一(direct)异或(A)

字节数:2

机器周期:1

10、XRLdirect,#data

指令名称:逻辑异或操作指令

指令代码:63H

指令功能:内部RAM低128单元或专用寄存器内容与立即数进行逻辑异或操作

操作内容:direct←(direct)异或data

字节数:3

机器周期:2源自Firefly950整理designedbyFirefly9508种常用伪指令1.ORG

16位地址

;此指令用在原程序或数据块的开始,指明此语句后面目标程序或数据块存放的起始地址。2.[标号:]DB

字节数据项表;将项表中的字节数据存放到从标号开始的连续字节单元中。例如:SEG:DB88H,100,“7”,“C”3.[标号:]DW

双字节数据项表;定义16位地址表,16地址按低位地址存低位字节,高位地址存高位字节。例如:TAB:DW

1234H,7BH4.名字EQU表达式

或名字=表达式;用与给一个表达式赋值或给字符串起名字。之后名字可用做程序地址,数据地址或立即数地址使用。名字必须是一字母开头的字母数字串。例如:COUNT=10或SPACE

EQU

10H5.名字DATA直接字节地址;给8位内部RAM单元起个名字,名字必须是一字母开头的字母数字串。同一单元可起多个名字。例如:ERROR

DATA

80H6.名字XDATA直接字节地址;给8位外部RAM起个名字,名字规定同DATA伪指令。例如:IO_PORT

XDATA

0CF04H7.名字BIT位指令;给一可位寻址的位单元起个名字,规定同DATA伪指令。例如:SWTBIT30H8.[标号:]END;指出源程序到此结束,汇编对其后的程序语句不予理睬。源程序只在主程序最后使用一个END。指令集(111条)助记符说明字节周期代码1.数据传送指令(30条)MOVA,Rn寄存器送A

11E8--EFMOVA,data直接字节送A

21E5MOVA,@Ri间接RAM送A

11E6--E7MOVA,#data立接数送A

2174MOVRn,AA送寄存器11F8--FFMOVRn,data直接数送寄存器22A8--AFMOVRn,#data立即数送寄存器2178--7FMOVdata,AA送直接字节21F5MOVdata,Rn寄存器送直接字节2188—8FMOVdata,data直接字节送直接字节3285MOVdata,@Ri间接Rn送直接字节2286;87MOVdata,#data立即数送直接字节3275MOV@Ri,AA送间接Rn12F6;F7MOV@Ri,data直接字节送间接Rn11A6;A7MOV@Ri,#data立即数送间接Rn2276;77MOVDPTR,#data1616位常数送数据指针3190MOVC,bit直接位送进位位21A2MOVbit,C进位位送直接位2292MOVCA,@A+DPTRA+DPTR寻址程序存贮字节送A3293MOVCA,@A+PCA+PC寻址程序存贮字节送A1283MOVXA,@Ri外部数据送A(8位地址)12E2;E3MOVXA,@DPTR外部数据送A(16位地址)12E0MOVX@Ri,AA送外部数据(8位地址)12F2;F3MOVX@DPTR,A

A送外部数据(16位地址)12F0PUSHdata直接字节进栈道,SP加122C0POPdata直接字节出栈,SP减122D0XCHA,Rn寄存器与A交换11C8—CFXCHA,data直接字节与A交换21C5XCHA,@Ri间接Rn与A交换11C6;C7XCHDA,@Ri间接Rn与A低半字节交换11D6;D72.逻辑运算指令(35条)ANLA,Rn寄存器与到A1158—5FANLA,data直接字节与到A2155ANLA,@Ri间接RAM与到A1156;57ANLA,#data立即数与到A2154ANLdata,AA与到直接字节2152ANLdata,#data立即数与到直接字节3253ANLC,bit直接位与到进位位2282ANLC,/bit直接位的反码与到进位位22B0ORLA,Rn寄存器或到A1148—4FORLA,data直接字节或到A2145ORLA,@Ri间接RAM或到A1146;47ORLA,#data立即数或到A2144ORLdata,AA或到直接字节2142ORLdata,#data立即数或到直接字节3243ORLC,bit直接位或到进位位2272ORLC,/bit直接位的反码或到进位位22A0XRLA,Rn寄存器异或到A1168—6FXRLA,data直接字节异或到A2165XRLA,@Ri间接RAM异或到A1166;67XRLA,#data立即数异或到A2164XRLdata,AA异或到直接字节2162XRLdata,#data立即数异或到直接字节3263SETBC进位位置111D3SETBbit直接位置121D2CLRAA清011E4CLRC进位位清011C3CLRbit直接位清021C2CPLAA求反码11F4CPLC进位位取反

11B3CPLbit直接位取反21B2RLAA循环左移一位

1123RLCAA带进位左移一位1133RRAA右移一位1103RRCAA带进位右移一位1113SWAPAA半字节交换11C43.算术运算指令(24条)ADDA,Rn寄存器加到A

1128—2FADDA,data直接字节加到A2125ADDA,@Ri间接RAM加到A1126;27ADDA,#data立即数加到A2124ADDCA,Rn寄存器带进位加到A1138—3FADDCA,data直接字节带进位加到A2135ADDCA,@Ri间接RAM带进位加到A1136;37ADDCA,#data立即数带进位加到A2134SUBBA,Rn从A中减去寄存器和进位1198—9FSUBBA,data从A中减去直接字节和进位2195SUBBA,@Ri

从A中减去间接RAM和进位1196;97SUBBA,#data从A中减去立即数和进位2194INCAA加11104INCRn寄存器加11108—0FINCdata直接字节加12105INC@Ri间接RAM加11106;07INCDPTR数据指针加112A3DECAA减11114DECRn寄存器减11118—1FDECdata直接字节减12115DEC@Ri间接RAM减11116;17MULABA乘B14A4DIVABA被B除1484DAAA十进制调整11D44.转移指令(22条)AJMPaddr11绝对转移22*1LJMPaddr16长转移3202SJMPrel短转移2280JMP@A+DPTR相对于DPTR间接转移1273JZrel若A=0则转移2260JNZrel若A≠0则转移2270JCrel若C=1则转移2240JNCrel若C≠1则转移2250JBbit,rel若直接位=1则转移3220JNBbit,rel若直接位=0则转移3230JBCbit,rel若直接位=1则转移且清除3210CJNEA,data,rel直接数与A比较,不等转移32B5CJNEA,#data,rel立即数与A比较,不等转移32B4CJNE@Ri,#data,rel立即数与间接RAM比较,不等转移32B6;B7CJNERn,#data,rel立即数与寄存器比较不等转移32B8—BFDJNZRn,rel

寄存器减1不为0转移22D8—DFDJNZdata,rel直接字节减1不为0转移32D5ACALLaddr11绝对子程序调用22*1LCALLaddr16子程序调用3212RET子程序调用返回1222RETI中断程序调用返回1232NOP空操作1100六.记忆方法MCS-51使用汇编语言指令,它共有44个操作码助记符,33种功能,

其操作数有#data、direct、Rn、@Ri等。这里先介绍指令助记符及其相关符号的记忆方法。

一、助记符号的记忆方法

1表格列举法

把44个指令助记符按功能分为五类,每类列表记忆。此处从略,请读者自己总结。

2英文还原法

单片机的操作码助记符是该指令功能的英文缩写,将缩写还原成英语原文,再对照汉

语有助于理解其助记符含义,从而加强记忆。例如:

增量INC-Incremect减量DNC-Decrement

短转移SJMP-Shortjump长转移LJMP-Longjump

比较转移CJNE-Comparejumpnotequality

绝对转移AJMP-Absolutejump空操作NOP-Nooperation

交换XCH-Exchange加法ADD-Addition

乘法MUL-Multiplication除法DIV-Division

左环移RL-Rotateleft进位左环移RLC-Rotate

leftcarry

右环移RR-Rotateright进位右环移RRC-Rotate

rightcarry

3功能模块记忆法

单片机的44个指令助记符,按所属指令功能可分为五大类,每类又可以按功能相似原

则为2~3组。这样,化整为零,各个击破,实现快速记忆。

1)数据传送组。2)加减运算组

MOV内部数据传送ADD加法

MOVC程序存储器传送ADDC带进位加法

MOVX外部数据传送SUBB带进位减法

3)逻辑运算组。4)子程序调用组。

ANL逻辑与LCALL长调用

ORL逻辑或ALALL绝对调用

XRL逻辑异或RET子程序返回

二、指令的记忆方法

1指令操作数的有关符号

MCS-51的寻址方式共有六种:立即数寻址、直接寻址、寄存器寻址、寄存器间址、变

址寻址、相对寻址。我们必须掌握其表示的方法。

1)立即数与直接地址。data表示八位立即数,#data16表示是十六位立即数,data或direct表示直接地址。

2)Rn(n=0-7)、A、B、CY、DPTR寄存器寻址变量。

3)@R0、@R1、@DPTR、SP表示寄存器间址变量。

4)DPTR+A、PC+A表示变址寻址的变量。

5)PC+rel(相对量)表示相对寻址变量。

记住指令的助记符,掌握不同寻址方式的指令操作数的表示方法,为我们记忆汇编指令打下了基础。MCS-51指令虽多,但按功能可分为五类,其中数据传送类28条,算术运算类24条,逻辑操作类25条,控制转移类17条,布尔位操作类17条。在每类指令里,根据其功能,抓住其源、目的操作数的不同组合,再辅之以下方法,是完全能记住的。

我们约定,可能的目的操作数按(#data/direct/A/Rn/@Ri)顺序表示。对于MOV指令,其目的操作数按A、Rn、direct、@Ri的顺序书写,则可以记住MOV的15条指令。例如以累加器A为目的操作数,可写出如下4条指令。

MOVA,#data/direct/A/Rn/@Ri

以此类推,写出其它指令。

MOVRn,#data/direct/A

MOVdirect,#data/direct/A/Rn/@Ri

MOV@Ri,#data/direct/A

2指令图示记忆法

图示记忆法是把操作功能相同或相似、但其操作数不同的指令,用图形和箭头将目的、源操作数的关系表示出来的一种记忆方法。

例如:由助记符MOV、MOVX、MOVC组成的送数组指令,可以用图1、2帮助记忆。

由助记符CJNE形成的四条指令,也可以用图示法表示。

CJNEA,#data,relCJNEA,direct,rel

CJNE@Rn,#data,relCJNE@Ri,#data,rel

另外,对于由(ANL、ORL、ARL)形成的18条逻辑操作指令,有关A的四条环移指令,也可以用图示法表示,请读者自行画出记忆。

3相似功能归类法

在MCS-51指令中,我们发现部分指令其操作码不同,但功能相似,而操作数则完全一样。相似功能归类法就是把具有这样特点的指令放在一起记忆,只要记住其中的一条,其余的也就记住了。如加、减法的十二条指令,与、或、非的十八条指令,现列举如下。

ADD/ADDC/SUBBA,#data/direct/Rn/@Ri

ANL/ORL/XRLA,#data/direct/Rn/@Ri

ANL/ORL/XRLdirect,#data/a

上述每一排指令,功能相似,其操作数都相同。其它的如加1(INC)、减1(DEC)指令也可照此记忆。

4口诀记忆法

对于有些指令,我们可以把相关的功能用精练的语言编成一句话来记忆。如PUSHdirect和POPdirect这两条指令。

初学者常常分不清堆栈SP的变化情况,为此编成这样一句话:(SP的内容)加1(direct的内容)再入栈,(SP的内容)弹出(到direct单元)SP才减1。

又如乘法指令中积的存放,除法指令中被除数和除数以及商的存放,都可以编成口诀记忆如下。

MULAB高位积(存于)B,低位积(存于)A。

DIVABA除以B,商(存于)A余(下)B。

上面介绍了几种快速记忆单片机指令的方法,希望能起到抛砖引玉的作用,相信读者在学习单片机的过程中能找到适合自己的方法来记忆。但是,有了好的方法还不够,还需要实践,即多读书上的例题和别人编写的程序,自己再结合实际编写一些程序。只有这样,才能更好更快地掌握单片机指令系统。

分类助记MCS-51系列单片机指令以A开头的指令有18条,分别:ACALLaddr11ADDA,RnADDA,directADDA,@RiADDA,#dataADDCA,RnADDCA,directADDCA,@RiADDCA,#dataAJMPaddr11ANLA,RnANLA,directANLA,@RiANLA,#dataANLdirect,AANLdirect,#data以X开头的指令有10条,分别为:XCHA,RnXCHA,directXCHA,@RiXCHDA,@RiXRLA,RnXRLA,directXRLA,@RiXRLA,#dataXRLdirect,AXRLdirect,#data1、XCHA,Rn指令名称:寄存器寻址字节交换指令指令代码:C8H~CFH指令功能:寄存器寻址字节操作内容:(A)交换(Rn);n=0~7字节数:1机器周期:12、XCHA,direct指令名称:直接寻址字节交换指令指令代码:C5H指令功能:累加器内容与内部RAM低128单元或专用寄存器内容交换操作内容:(A)交换(direct)字节数:2机器周期:13、XCHA,@Ri指令名称:间接寻址字节交换指令指令代码:C6H~C7H指令功能:累加器内容与内部RAM低128单元内容交换操作内容:(A)交换((Ri));i=0,1字节数:1机器周期:14、XCHDA,@Ri指令名称:半字节交换指令指令代码:D6H~D7H指令功能:累加器内容低4位与内部RAM低128单元低4位交换操作内容:(A)3~0交换((Ri))3~0;i=0,1字节数:1机器周期:15、XRLA,Rn指令名称;逻辑异或操作指令指令代码:68H~6FH指令功能:累加器内容与寄存器内容进行逻辑异或操作操作内容:A<-(A)异或(Rn);n=0~7字节数:1机器周期:16、XRLA,direct指令名称:逻辑异或操作指令指令代码:65H指令功能:累加器内容与内部RAM低128单元或专用寄存器内容进行逻辑异或操作操作内容:A<-(A)异或(direct)字节数:2机器周期:17、XRLA,@Ri指令名称:逻辑异或指令指令代码:66H~67H指令功能:累加器与内部RAM低128单元内容进行逻辑异或操作操作内容:A<-(A)异或((Ri));i=0,1字节数:1机器周期:18、XRLA,#data指令名称:逻辑异或指令指令代码:64H指令功能:累加器内容与立即数进行逻辑异或操作操作内容:A1?/FONT>(A)异或data字节数:2机器周期:19、XRLdirect,A指令名称:逻辑异或操作指令指令代码:62H指令功能:累加器内容与内部RAM低128单元或专用寄存器内容进行逻辑异或操作操作内容:direct一(direct)异或(A)字节数:2机器周期:110、XRLdirect,#data指令名称:逻辑异或操作指令指令代码:63H指令功能:内部RAM低128单元或专用寄存器内容与立即数进行逻辑异或操作操作内容:direct<-(direct)异或data字节数:3机器周期:2以R开头的指令有6条,分别为:RETRETIRLARLCARRARRCA1、RET指令名称:子程序返回指令指令代码:22H指令功能:子程序返回操作内容:PC15~8<-((SP))SP<-(SP)-1PC7~0<-((SP))SP<-(SP)-1字节数:1机器周期:22、RETI指令名称:中断返回指令指令代码:32H指令功能:中断服务程序返回操作内容’:PC15?/FONT>8<-((SP))SP<-(SP)-lPC7~0<-((SP))SP<-(SP)-1字节数:1机器周期:23、RLA指令名称:循环左移指令指令代码:23H指令功能:累加器内容循环左移一位操作内容:An+1<-(An);n=0~6A0<-(A7)字节数:1机器周期:14、RLCA指令名称:带进位循环左移指令指令代码:33H指令功能:累加器内容连同进位标志位循环左移一位操作内容:An-1<-(An);n=0~6A0<-(C)C<-(A7)字节数:1机器周期:15、RRA指令名称:循环右移指令指令代码:03H指令功能:累加器内容循环右移一位操作内容:An<-(An+1);n=0~6A7<-(A0)字节数:1机器周期:16、RRCA指令名称:带进位循环右移指令指令代码:13H指令功能:累加器内容连同进位标志位循环右移一位操作内容:An<-(An+1);n=0~6A7<-(C)C<-(A0)字节数:1机器周期:1以S开头的指令有8条,分别为:SETBcSETBbitSJMPrelSUBBA,RnSUBBA,directSUBBA,@RiSUBBA,#dataSWAPA1、SETBc指令名称:进位标志置位指令指令代码:D.H指令功能:进位标志位置位操作内容:C<-1字节数:1机器周期:12、SETBbit指令名称:直接寻址位置位指令指令代码:D2H指令功能:内部RAM可寻址位或专用寄存器指定位置位操作内容:bit<-1字节数:2机器周期:13、SJMPrel指令名称:短转移指令指令代码:80H指令功能:按指令提供的偏移量计算转移的目的地址,实现程序的无条件相对转移;操作内容:PC<-(PC)+2PC<-(PC)+rel字节数:2机器周期:2使用说明:偏移量是8位二进制补码数,可实现程序的双向转移,其转移范围是(PC一126)一(PC+129)。其中PC值为本指令的地址。4、SUBBA,Rn指令名称:寄存器寻址带进位减法指令指令代码:98H~9FH指令功能:累加器内容减寄存器内容和进位标志位内容操作内容:A<-(A)-(Rn)-(C);n=0~7字节数:1机器周期:1影响标志位:当够减时,进位标志位复位;不够减时,进位标志置位。当位3发生借位时,AC置位;否则AC复位。当位6及位7不同时发生借位时,OV置位;否则OV复位。5、SUBBA,direct指令名称:直接寻址带进位减法指令指令代码:95H指令功能:累加器内容减内部RAM低128单元或专用寄存器和进位标志位内容操作内容:A<-(A)-(diret)-(C)字节数:2机器周期:1影响标志位:同SUBBA,Rn指令(序号97)6、SUBBA,@Ri指令名称:间接寻址带进位减法指令指令代码:96H~97H指令功能:累加器内容减内部RAM低128单元内容及进位标志位内容操作内容:A<-(A)-((Ri))-(C);i=0,1字节数:1机器周期:1影响标志位:同SUBBA,Rn指令(序号97)7、SUBBA,#data指令名称:立即数带进位减法指令指令代码:94H指令功能:累加器内容减立即数及进位标志内容操作内容:A<-(A)-data-(C)字节数:2机器周期:1影响标志位:同SUBBA,Rn指令(序号97)8、SWAPA指令名称:累加器高低半字节交换指令指令代码:C4H指令功能:累加器内容的高4位与低4位交换操作内容:(A)7?/FONT>4交换(A)3?/FONT>0字节数:1机器周期:1以N开头的指令只有1条,就是:1、NOP指令名称:空操作指令指令代码;00H指令功能:不执行任何操作,常用于产生一个机器周期的时间延迟。操作内容:PC<-(PC)+l字节数:1机器周期:1以O开头的指令有8条,分别为:ORLA,RnORLA,directORLA,@RiORLA,#dataORLdirect,AORLdirect,#dataORLC,bitORLC,/bit1、ORLA,Rn指令名称:逻辑或操作指令指令代码:48H~4FH指令功能:累加器内容与寄存器内容进行逻辑或操作操作内容:A1<-(A)|(Rn),n=0~7字节数:1机器周期:12、ORLA,direct指令名称:逻辑或操作指令指令代码:45H操作内容:A<-(A)|(direct)字节数:2机器周期:13、ORLA,@Ri指令名称:逻辑或操作指令指令代码:46H~47H指令功能:累加器内容与内部RAM低128单元内容进行逻辑或操作操作内容:A<-(A)|((Ri));i=0,1字节数:1机器周期:14、ORLA,#data指令名称:逻辑或操作指令指令代码:44H指令功能:累加器内容与立即数进行逻辑或操作操作内容:A<-(A)|data字节数:2机器周期:15、ORLdirect,A指令名称:逻辑或操作指令指令代码:42H指令功能:内部RAM低128单元或专用寄存器内容与累加器内容进行逻辑或操作操作内容:direct<-(direct)|(A)字节数:2机器周期:16、ORLdirect,#data指令名称:逻辑或操作指令指令代码:43H指令功能:内部RAM低128单元或专用寄存器内容与立即数进行逻辑或操作。操作内容:direct<-(direct)|data字节数:3机器周期:27、ORLC,bit指令名称:位逻辑或操作指令指令代码:72H指令功能:累加位C状态与内部RAM可寻址位或专用寄存器指定位进行逻辑或操作操作内容:C<-(C)|(bit)字节数:2机器周期:28、ORLC,/bit指令名称:位反逻辑或操作指令指令代码:A0H指令功能:累加位C状态与内部RAM可寻址位或专用寄存器指定位的反进行逻辑或操作操作内容:C<-(C)|(bit非)字节数:2机器周期:2使用说明:指定位的状态取反后进行逻辑或操作,但并不改变指定位的原来状态。以P开头的指令有2条,分别为:POPdirectPUSHdirect1、POPdirect指令名称:出栈指令指令代码:D0H指令功能:堆栈栈顶单元的内容送内部RAM低128单元或专用寄存器操作内容:direct<-(SP)SP<-(SP)-1字节数:2机器周期:22、PUSHdirect指令名称:进栈指令指令代码:C0指令功能:内部RAM低128单元或专用寄存器内容送堆栈栈顶单元操作内容:SP<-(SP)+1(SP)<-(direct)字节数:2机器周期:2以M开头的指令有24条,分别为:MOVA,RnMOVA,directMOVA,@RiMOVA,#dataMOVRn,AMOVRn,directMOVRn,#dataMOVdirect,AMOVdirect,RnMOVdirect2,direct1MOVdirect,@RiMOVdirect,#dataMOV@Ri,AMOV@Ri,directMOV@Ri,dataMOVC,bitMOVbit,CMOVDPTR,#datal6MOVCA,@A+DPTRMOVCA,@A+PCMOVXA,@RiMOVXA,@DPTRMOVX@Ri,AMOVX@DPTR,AMULAB1、MOVA,Rn指令名称:寄存器数据传送指令指令代码:E8H~EFH指令功能:寄存器内容送累加器操作内容:A<-(Rn),n=0~7字节数:1机器周期:12、MOVA,direct指令名称:直接寻址数据传送指令指令代码:E5H指令功能:内部RAM低126单元或专用寄存器内容送累加器操作内容:A<-(direct)字节数:2机器周期:13、MOVA,@Ri指令名称:间接寻址数据传送指令指令代码:E6H~E7H指令功能:内部RAM低128单元内容送累加器操作内容:A<-((Ri)),i=0,1字节数:1机器周期:14、MOVA,#data指令名称:立即数据传送指令指令代码:74H指令功能:立即数送累加器操作内容:A<-data字节数:2机器周期:15、MOVRn,A指令名称:累加器数据传送指令指令代码:F8H~FFH指令功能:累加器内容送寄存器操作内容:Rn<-(A)字节数:1机器周期:16、MOVRn,direct指令名称:直接寻址数据传送指令指令代码:A8H~AFH指令功能:内部RAM低128单元或专用寄存器内容送累加器操作内容:Rn<-(direct),n=0~7字节数:2机器周期:27、MOVRn,#data指令名称:立即数据传送指令指令代码:78H~7FH指令功能:立即数送寄存器操作内容:Rn<-data,n=0~7字节数:2机器周期:18、MOVdirect,A指令名称:累加器数据传送指令指令代码:F5H指令功能:累加器内容送内部RAM低128单元或专用寄存器操作内容:direct<-(A)字节数:2机器周期:19、MOVdirect,Rn指令名称:寄存器数据传送指令指令代码:88H~8FH指令功能:寄存器内容送内部RAM低128单元或专用寄存器操作内容:direct<-(Rn),n=0~7字节数:2机器周期:210、MOVdirect2,direct1指令名称:直接寻址数据传送指令指令代码:85H指令功能:内部RAM低123单元或专用寄存器之间的相互传送操作内容:direct2<-(direct1)字节数:3机器周期:211、MOVdirect,@Ri指令名称:间接寻址数据传送指令指令代码:86H~87H指令功能:内部RAM低128单元内容送内部RAM低128单元或专用寄存器操作内容:direct<-((Ri)),i=0,1字节数:2机器周期:212、MOVdirect,#data指令名称:立即数传送

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论