单片机指令大全.docx

上传人:b****3 文档编号:4839626 上传时间:2022-12-10 格式:DOCX 页数:6 大小:19.25KB
下载 相关 举报
单片机指令大全.docx_第1页
第1页 / 共6页
单片机指令大全.docx_第2页
第2页 / 共6页
单片机指令大全.docx_第3页
第3页 / 共6页
单片机指令大全.docx_第4页
第4页 / 共6页
单片机指令大全.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

单片机指令大全.docx

《单片机指令大全.docx》由会员分享,可在线阅读,更多相关《单片机指令大全.docx(6页珍藏版)》请在冰豆网上搜索。

单片机指令大全.docx

单片机指令大全

单片机指令大全- -                                       指令格式              功能简述                  字节数      周期 

一、数据传送类指令 

MOV   A, Rn              寄存器送累加器                  1          1 

MOV   Rn,A               累加器送寄存器                  1          1 

MOV   A ,@Ri            内部RAM单元送累加器             1          1 

MOV   @Ri ,A            累加器送内部RAM单元             1          1 

MOV   A ,#data           立即数送累加器                  2          1 

MOV   A ,direct          直接寻址单元送累加器            2          1 

MOV   direct ,A          累加器送直接寻址单元            2          1 

MOV   Rn,#data           立即数送寄存器                  2          1 

MOV   direct ,#data      立即数送直接寻址单元            3          2 

MOV   @Ri ,#data        立即数送内部RAM单元             2          1 

MOV   direct ,Rn         寄存器送直接寻址单元            2          2 

MOV   Rn ,direct         直接寻址单元送寄存器            2          2 

MOV   direct ,@Ri       内部RAM单元送直接寻址单元       2          2 

MOV   @Ri ,direct       直接寻址单元送内部RAM单元       2          2 

MOV   direct2,direct1    直接寻址单元送直接寻址单元      3          2 

MOV   DPTR ,#data16      16位立即数送数据指针            3          2 

MOVX  A ,@Ri            外部RAM单元送累加器(8位地址)    1          2 

MOVX  @Ri ,A            累加器送外部RAM单元(8位地址)    1          2 

MOVX  A ,@DPTR          外部RAM单元送累加器(16位地址)   1          2 

MOVX  @DPTR ,A          累加器送外部RAM单元(16位地址)   1          2 

MOVC  A ,@A+DPTR        查表数据送累加器(DPTR为基址)    1          2 

MOVC  A ,@A+PC          查表数据送累加器(PC为基址)      1          2 

XCH   A ,Rn              累加器与寄存器交换              1          1 

XCH   A ,@Ri            累加器与内部RAM单元交换         1          1 

XCHD  A ,direct          累加器与直接寻址单元交换         2          1 

XCHD  A ,@Ri            累加器与内部RAM单元低4位交换    1          1 

SWAP  A                   累加器高4位与低4位交换          1          1 

POP   direct              栈顶弹出指令直接寻址单元        2          2 

PUSH  direct              直接寻址单元压入栈顶            2          2 

二、算术运算类指令 

ADD   A, Rn              累加器加寄存器                  1          1 

ADD   A, @Ri            累加器加内部RAM单元             1          1 

ADD   A, direct          累加器加直接寻址单元            2          1 

ADD   A, #data           累加器加立即数                  2          1 

ADDC  A, Rn              累加器加寄存器和进位标志        1          1 

ADDC  A, @Ri            累加器加内部RAM单元和进位标志   1          1 

ADDC  A, #data           累加器加立即数和进位标志        2          1 

ADDC  A, direct          累加器加直接寻址单元和进位标志  2          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 

DA    A                   十进制调整                      1          1 

SUBB  A, Rn              累加器减寄存器和进位标志        1          1 

SUBB  A, @Ri            累加器减内部RAM单元和进位标志   1          1 

SUBB  A, #data           累加器减立即数和进位标志        2          1 

SUBB  A, direct          累加器减直接寻址单元和进位标志  2          1 

DEC   A                   累加器减1                       1          1 

DEC   Rn                  寄存器减1                       1          1 

DEC   @Ri                内部RAM单元减1                  1          1 

DEC   direct              直接寻址单元减1                 2          1 

MUL   AB                  累加器乘寄存器B                 1          4 

DIV   AB                  累加器除以寄存器B               1          4 

三、逻辑运算类指令 

ANL   A, Rn              累加器与寄存器                  1          1 

ANL   A, @Ri            累加器与内部RAM单元             1          1 

ANL   A, #data           累加器与立即数                  2          1 

ANL   A, direct          累加器与直接寻址单元            2          1 

ANL   direct, A          直接寻址单元与累加器            2          1 

ANL   direct, #data      直接寻址单元与立即数            3          1 

ORL   A, Rn              累加器或寄存器                  1          1 

ORL   A,@Ri             累加器或内部RAM单元             1          1 

ORL   A,#data            累加器或立即数                  2          1 

ORL   A,direct           累加器或直接寻址单元            2          1 

ORL   direct, A          直接寻址单元或累加器            2          1 

ORL   direct, #data      直接寻址单元或立即数            3          1 

XRL   A, Rn              累加器异或寄存器                1          1 

XRL   A,@Ri             累加器异或内部RAM单元           1          1 

XRL   A,#data            累加器异或立即数                2          1 

XRL   A,direct           累加器异或直接寻址单元          2          1 

XRL   direct, A          直接寻址单元异或累加器          2          1 

XRL   direct, #data      直接寻址单元异或立即数          3          2 

RL    A                   累加器左循环移位                1          1 

RLC   A                   累加器连进位标志左循环移位      1          1 

RR    A                   累加器右循环移位                1          1 

RRC   A                   累加器连进位标志右循环移位      1          1 

CPL   A                   累加器取反                      1          1 

CLR   A                   累加器清零                      1          1 

四、控制转移类指令类 

ACCALL addr11             2KB范围内绝对调用               2          2 

AJMP   addr11             2KB范围内绝对转移               2          2 

LCALL  addr16             2KB范围内长调用                 3          2 

LJMP   addr16             2KB范围内长转移                 3          2 

SJMP   rel                相对短转移                      2          2 

JMP    @A+DPTR           相对长转移                      1          2 

RET                       子程序返回                      1          2 

RET1                      中断返回                        1          2 

JZ     rel                累加器为零转移                  2          2 

JNZ    rel                累加器非零转移                  2          2 

CJNE   A ,#data ,rel    累加器与立即数不等转移          3          2 

CJNE   A ,direct ,rel   累加器与直接寻址单元不等转移    3          2 

CJNE   Rn,#data ,rel    寄存器与立即数不等转移          3          2 

CJNE   @Ri ,#data,rel  RAM单元与立即数不等转移         3          2 

DJNZ   Rn ,rel           寄存器减1不为零转移             2          2 

DJNZ   direct  ,rel      直接寻址单元减1不为零转移       3          2 

NOP                       空操作                          1          1 

五、布尔操作类指令 

MOV    C, bit            直接寻址位送C                   2          1 

MOV    bit, C            C送直接寻址位                   2          1 

CLR    C                  C清零                           1          1 

CLR    bit                直接寻址位清零                  2          1 

CPL    C                  C取反                           1          1 

CPL    bit                直接寻址位取反                  2          1 

SETB   C                  C置位                           1          1 

SETB   bit                直接寻址位置位                  2          1 

ANL    C, bit            C逻辑与直接寻址位               2          2 

ANL    C, /bit           C逻辑与直接寻址位的反           2          2 

ORL    C, bit            C逻辑或直接寻址位               2          2 

ORL    C, /bit           C逻辑或直接寻址位的反           2          2 

JC     rel                C为1转移                        2          2 

JNC    rel                C为零转移                       2          2 

JB     bit,rel           直接寻址位为1转移               3          2 

JNB    bit,rel           直接寻址为0转移                 3          2 

JBC    bit,rel           直接寻址位为1转移并清该位       3          2

单片机MCS-51系列指令快速记忆法

    随着微电子技术和超大规模集成电路技术的发展,单片微型计算机以其体积小、性价比高、功能强、可靠性高等独有的特点,在各个领域(如工业控制、家电产品、汽车电子、通信、智能仪器仪表)得到了广泛的应用。

学习、使用单片机的人越来越多,而生产单片机的厂家很多,单片机种类繁杂,不知如何选择。

据统计,八位单片机占全球单片机销量的65%。

在八位单片机中,Intel公司的8051单片机内核已成为8位单片机事实上的标准。

因此,对初学者而言,选择8051单片机来学习不失为明智的选择。

  学习单片机,除了搞清单片机内部功能、存储空间分配及I/O接口外,还应掌握其指令系统。

MCS-51共有111条指令,现介绍我们总结出的快速记忆MCS-51指令的方法,供大家参考。

  大家都知道,汇编语言指令由操作码、操作数两部分组成。

MCS-51使用汇编语言指令,它共有44个操作码助记符,33种功能,其操作数有#data、direct、Rn、@Ri等。

这里先介绍指令助记符及其相关符号的记忆方法。

  一、助记符号的记忆方法

  1表格列举法

  把44个指令助记符按功能分为五类,每类列表记忆。

此处从略,请读者自己总结。

  2英文还原法

  单片机的操作码助记符是该指令功能的英文缩写,将缩写还原成英语原文,再对照汉语有助于理解其助记符含义,从而加强记忆。

例如:

增量 INC-Incremect  减量 DNC-Decrement

短转移 SJMP-Short jump  长转移 LJMP-Long jump

比较转移 CJNE-Compare jump not equality 

绝对转移 AJMP-Absolute jump 空操作 NOP-No operation

交换 XCH-Exchange    加法 ADD-Addition

乘法 MUL-Multiplication  除法 DIV-Division

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

                    left carry

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

                    right carry

  3功能模块记忆法

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

这样,化整为零,各个击破,实现快速记忆。

  1)数据传送组。

      2)加减运算组

   MOV 内部数据传送     ADD 加法

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

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

  3)逻辑运算组。

      4)子程序调用组。

   ANL 逻辑与        LCALL 长调用

   ORL 逻辑或        ALALL 绝对调用

   XRL 逻辑异或       RET 子程序返回

  二、指令的记忆方法

  1指令操作数的有关符号

  MCS-51的寻址方式共有六种:

立即数寻址、直接寻址、寄存器寻址、寄存器间址、变址寻址、相对寻址。

我们必须掌握其表示的方法。

  1)立即数与直接地址。

  ata表示八位立即数,#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条指令。

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

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

  MOV Rn,#data/direct/A

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

  MOV @Ri,#data/direct/A

  2指令图示记忆法

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

例如:

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

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

CJNE A,#data,rel   CJNE A,direct,rel

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

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

  3相似功能归类法

  在MCS-51指令中,我们发现部分指令其操作码不同,但功能相似,而操作数则完全一样。

相似功能归类法就是把具有这样特点的指令放在一起记忆,只要记住其中的一条,其余的也就记住了。

如加、减法的十二条指令,与、或、非的十八条指令,现列举如下:

  ADD/ADDC/SUBB A,#data/direct/Rn/@Ri

  ANL/ORL/XRL A,#data/direct/Rn/@Ri

  ANL/ORL/XRL direct,#data/a

  上述每一排指令,功能相似,其操作数都相同。

其它的如加1(INC)、减1(DEC)指令也可照此办理。

  4口诀记忆法

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

如PUSH direct和POP direct这两条指令。

初学者常常分不清堆栈SP的变化情况,为此编成这样一句话:

(SP的内容)加1(direct的内容)再入栈,(SP的内容)弹出(到direct单元)SP才减1。

又如乘法指令中积的存放,除法指令中被除数和除数以及

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1