4MCS-51指令系统_第1页
4MCS-51指令系统_第2页
4MCS-51指令系统_第3页
4MCS-51指令系统_第4页
4MCS-51指令系统_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

第三章MCS-51指令系统,指令系统概述MCS-51单片机指令系统数据传送类指令算术运算类指令逻辑运算类指令控制转移类指令位操作类指令,指令:规定计算机进行某种操作的命令。指令系统:计算机能够执行的各种指令的集合。,单字节指令:49条双字节指令:45条三字节指令:17条,单周期指令:64条双周期指令:45条四周期指令:2条,MCS-51单片机共有111条指令。,第一节指令系统概述,1)数据传送类指令29条:片内RAM、片外RAM、程序存储器的传送指令;交换及堆栈操作指令;2)算术运算类指令24条:加法、带进位加、减、乘、除、加1、减1指令;3)逻辑运算类指令24条:逻辑与、或、异或、移位指令;4)控制转移类指令17条:无条件转移与调用、条件转移、空操作指令;5)布尔(位)操作类指令17条:位数据传送、位与、位或、位转移指令。,按功能分类:,1.指令的组成:操作码和操作数(1)单字节指令:操作数、操作码均在一个字节内;只有操作码,无操作数;(2)双字节指令:一个字节是操作码,一个字节是操作数;(3)三字节指令:一个字节是操作码,二个字节是操作数。,一、指令格式,标号:操作码操作数;注释标号:又称为指令地址符号,一般是由16个字符组成,以字母开头的字母数字串,与操作码之间用冒号分开。操作码:是由助记符所表示的指令的操作功能,与操作数之间必须用空格隔开。操作数:是指参加操作的数据或数据的地址,可以没有,也可以是1个、2个或3个,多个操作数之间必须用“,”隔开。注释:是为该条指令作用的说明,以便于阅读。操作码是指令的核心,不可缺少,其他几项根据不同指令为可选项。,2、指令的格式,1、立即寻址2、直接寻址3、寄存器寻址4、寄存器间接寻址5、变址寻址6、相对寻址7、位寻址,二、寻址方式,所谓寻址方式就是指如何找到存放操作数的地址的方法。,操作数直接出现在指令中。操作数前加“#”号表示,也称立即数。指令的操作数可以是8位或16位数。例:MOVA,#26H;26HA指令执行结果:把立即数26H直接送到累加器A中。这类指令大都是双字节指令,只有一条是三字节指令。例:MOVDPTR,#data16向数据指针DPTR传送的是16位立即数,立即数的高8位送入DPH中,低8位送入DPL中。MCS-51只有1条16位数据传送指令。,1、立即寻址,2、直接寻址,指令直接给出操作数的地址,用direct表示。,直接寻址方式可以访问的地址空间有:内部数据存储器的低128个字节单元、位地址空间及特殊功能寄存器SFR,且SFR和位地址空间只能用直接寻址方式访问。例:MOVA,26H;把26H单元的内容送到累加器A中。,注意:对于特殊功能寄存器,指令既可使用它们的地址,也可使用它们的名字。,3、寄存器寻址,指令中指定寄存器的内容作为操作数,使用的寄存器有:工作寄存器R0R7、累加器A、通用寄存器B、地址寄存器DPTR和位累加寄存器C等。,例:INCR2;(R2)+1(R2)指令功能是将R2工作寄存器的内容加1后传送回R2。如果选定的工作寄存器属于第一组(RS1RS0=01B)且原来(R2)=24H,则指令执行结果为(R2)=25H。,指定寄存器中的内容是操作数的地址,该地址对应存储单元的内容才是操作数。可用间接寻址的寄存器有R0、R1、堆栈指针SP和16位数据指针DPTR,使用时前面加符号表示间接寻址。,4、寄存器间接寻址,例:MOVA,R1设当前工作寄存器组为第0组,R1的内容为4FH,片内RAM区4FH单元的内容为27H。指令执行结果:A=27H。R0、R1可寻址片内RAM低128B和片外RAM低256B,DPTR可寻址片外RAM64KB。,R0、R1是当前工作寄存器组中可以作为地址指针的2个工作寄存器,基址寄存器加变址寄存器间接寻址,简称变址寻址。MCS-51单片机以数据指针DPTR或程序计数器PC作为基址寄存器,累加器A作为变址寄存器,两者的内容相加形成16位程序存储器地址,该地址就是操作数所在地址。,5、变址寻址,例:MOVCA,A+DPTR;(A+DPTR)A该指令为单字节指令。指令功能将A+DPTR形成的地址的单元内的内容送入累加器A。假设A=0D0H,DPTR=2000H,(20D0H)=1FH,指令执行后A=1FH。这种寻址方式常用于访问程序存储器ROM中的表格。MOVCA,A+PC,以PC当前值为基准,加上指令中给出的相对偏移量rel形成转移地址。转移的目的地址=转移指令所在地址+转移指令字节数+rel其中相对偏移量rel是有符号的8位二进制数,6、相对寻址,相对寻址方式主要用于跳转指令。例:SJMP30H此指令为双字节指令,地址为1068H,则转移的目的地址为109AH。,转移范围:以PC当前值为起始地址,相对偏移在-128+127字节单元之间。,PC当前值,7、位寻址,指对片内RAM的位寻址区和某些可以进行位寻址的特殊功能寄存器进行位操作时的寻址方式。该寻址方式和直接寻址方式的形式与执行过程基本相同,但参与操作的数据是1位而不是8位。位地址用bit表示,以区别字节地址direct。,MCS-51单片机内的RAM有两个区域可以进行位寻址:一个是20H2FH的16个单元中的128位,另一个是字节地址能被8整除的特殊功能寄存器的每一位。,在8051中,位地址常用下列三种方式表示:1)直接使用位地址;2)字节地址和位地址相结合3)直接用特殊功能寄存器名加位数表示,表示PSW.3。例:SETB2EH,判断下列指令中各操作数的寻址方式(1)MOVA,#65H(2)MOVR1,65H(3)MOV30H,R2(4)MOVC,20H(5)JZ50H(6)MOV60H,R1(7)MOVCA,A+DPTR,立即寻址,寄存器间接寻址直接寻址,直接寻址寄存器寻址,位寻址位寻址,相对寻址,直接寻址寄存器间接寻址,变址寻址,练习:,#data:表示指令中的8位立即数(data),“#”表示后面的数据是立即数。#data16:表示指令中的16位立即数。direct:表示位内部数据存储器单元的地址。Rn:n=07,表示当前选中的工作寄存器组R0R7。Ri:i=0或1,表示当前选中的工作寄存器组中的2个寄存器R0、R1,可作地址指针即间址寄存器。Addr11:表示11位的目的地址。Addr16:表示16位的目的地址。,三、指令系统中的符号说明,rel:表示位带符号的偏移量。用于SJMP和所有的条件转移指令中。DPTR:为数据指针,可用作16位的地址寄存器。bit:内部RAM或专用寄存器中的直接寻址位地址。/:位操作数的前缀,表示对该位操作数取反。A:累加器ACC。B:专用寄存器,用于MUL和DIV指令中。C:进位/借位标志位,也可作为布尔处理机中的位累加器。:间址寄存器或基址寄存器的前缀。$:当前指令的地址。:表示将箭头左边的内容送入箭头的右边。,数据传送类指令算术运算类指令逻辑运算类指令控制转移类指令位操作类指令,第二节MCS-51单片机指令系统,数据传送指令是最常用的一类指令,共有29条,可以通过累加器进行数据传送,还可以在数据存储器之间或工作寄存器与数据存储器之间直接进行数据传送。数据传送类指令用到的助记符有:MOV、MOVC、MOVX、XCH、XCHD、SWAP、PUSH、POP共8种,源操作数可以采用寄存器、寄存器间接、直接、立即、变址加基址5种寻址方式,目的操作数可以采用前3种寻址方式。,一、数据传送类指令,数据传送类指令分类,内部RAM数据传送指令(16条)外部数据传送指令(4条)查表指令(2条)堆栈操作指令(2条)交换指令(5条),1、内部RAM数据传送指令,1)以累加器A为目的操作数的指令:(4条)2)以工作寄存器Rn为目的操作数的指令(3条)3)以直接地址为目的操作数的指令(5条)4)以间接地址为目的操作数的指令(3条)5)16位数据传送指令,MOVA,R6,MOVA,Rn;RnAMOVA,Ri;(Ri)AMOVA,direct;(direct)AMOVA,#data;dataA该组指令的功能是把源操作数指定的内容送入累加器A。源操作数有寄存器寻址、直接寻址、寄存器间接寻址和立即寻址4种寻址方式。,源操作数为寄存器寻址,源操作数为寄存器间接寻址,源操作数为直接寻址,源操作数为立即寻址,MOVA,#38H,MOVA,38H,MOVR1,#40HMOVA,R1,1)以累加器A为目的操作数的指令:(4条),MOVRn,A;(A)RnMOVRn,direct;(direct)RnMOVRn,#data;dataRn该组指令的功能是将源操作数指定的内容送入当前工作寄存器组的某个寄存器。源操作数有寄存器、直接、立即3种寻址方式。没有“MOVRn,Rn”指令,MOVR6,AMOVR5,#38HMOVR1,40H,2)以工作寄存器Rn为目的操作数的指令(3条):,源操作数为寄存器寻址,源操作数为直接寻址,源操作数为立即寻址,MOVdirect,AMOVdirect,RnMOVdirect1,direct2MOVdirect,RiMOVdirect,#data该组指令的功能是将源操作数指定的内容送入由直接地址direct所指定的存储单元中。源操作数有寄存器、直接、寄存器间接和立即4种寻址方式。,MOV4AH,AMOV20H,R5MOV26H,#38HMOV44H,66H,3)以直接地址为目的操作数的指令(5条):,MOVRi,AMOVRi,directMOVRi,#data该组指令的功能是将源操作数指定的内容传送至以R0或R1为地址指针的片内RAM单元中。源操作数有寄存器、直接、和立即3种寻址方式。MOVR1,30H,假设(30H)6FH,R1=40H,执行指令后,30H单元中的数据送入R1间接寻址的40H单元,(40H)=6FH,4)以间接地址为目的操作数的指令(3条):,MOVDPTR,#data16该指令的功能:把16位立即数传送至16位数据指针寄存器DPT

温馨提示

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

评论

0/150

提交评论