欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    三章节8051单片机指令系统.ppt

    • 资源ID:5311024       资源大小:276.51KB        全文页数:77页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    三章节8051单片机指令系统.ppt

    第三章 8051单片机指令系统,3.1 MCS-51指令系统的分类、格式及一般说明3.2 寻址方式,学习目的及要求,熟悉指令、指令系统、机器语言、及汇编语言的概念;熟悉8051汇编语言指令的格式;掌握8051的七种寻址方式,并能实际应用;,MCS-51单片机指令系统有如下特点:,(1)指令执行时间快。(2)指令短,约有一半的指令为单字节指令。(3)用一条指令即可实现2个一字节的相乘或相除。(4)具有丰富的位操作指令。(5)可直接用传送指令实现端口的输入输出操作。,3.1 MCS-51指令系统的分类、格式及一般说明,3.1.1 指令分类3.1.2 指令格式,返回本章首页,3.1.1 指令分类,按指令功能,MCS-51指令系统分为数据传递与交换、算术运算、逻辑运算、程序转移、布尔处理操作、CPU控制等6类。布尔处理操作类指令又称位操作指令。,返回本节,3.1.2 指令格式,在MCS-51指令中,一般指令主要由操作码、操作数组成。指令格式为:操作码 目的操作数,源操作数指令应具有以下功能:(1)操作码指明执行什么性质和类型的操作。例如,数的传送、加法、减法等。(2)操作数指明操作的数本身或者是操作数所在的地址。(3)指定操作结果存放的地址。,返回本节,8051指令系统中,有单字节、双字节或三字节指令,1.单字节指令:单字节指令中的8位二进制代码既包含操作码的信息,又包含操作数的信息。共49条。2.双字节指令:用一个字节表示操作码,另一个字节表示操作数或操作数所在的地址。共有条。3.三字节指令:一个字节操作码,两个字节操作数。共有条。单片机共有条指令。,3.2 寻址方式,寻址方式:就是寻找指令中操作数或操作数所在地址的方法。8051共有七中寻址方式。3.2.1 立即寻址3.2.2 直接寻址3.2.3 寄存器寻址3.2.4 寄存器间接寻址3.2.5 变址寻址3.2.6 相对寻址3.2.7 位寻址3.2.8 寻址空间及符号注释,返回本章首页,3.2.1 立即数寻址,指令中直接给出操作数的寻址方式。立即操作数用前面加有#号的8位或16位数来表示。例如:MOV A,#60H;A60H MOV DPTR,#3400H;DPTR3400H MOV30H,#40H;30H单元40H 上述三条指令执行完后,累加器A中数据为立即数据60H,DPTR寄存器中数据为3400H,30H单元中数据为立即数40H。,返回本节,3.2.2 直接寻址,指令中直接给出操作数地址的寻址方式,能进行直接寻址的存储空间有SFR寄存器和片内RAM的128个单元。例如:MOV A,P1;A(P1)把SFR中P1口的内容送A。MOV A,30H;A(30H)注意解释字段中加括号和不加括号的区别!30H为直接给出的内部RAM的地址。,返回本节,3.2.3 寄存器寻址,以通用寄存器的内容为操作数的寻址方式。通用寄存器指A、B、DPTR以及R0R7。例如:MOV A,R0;A(R0)CLR A;A0 INC DPTR;DPTRDPTR+1 ADDA,R5;A(A)+(R5),返回本节,3.2.4 寄存器间接寻址,以寄存器中内容为地址,以该地址中内容为操作数的寻址方式。间接寻址的存储器空间包括内部数据RAM和外部数据RAM。能用于寄存器间接寻址的寄存器有R0,R1,DPTR,SP。其中R0、R1必须是工作寄存器组中的寄存器。SP仅用于堆栈操作。,例如:MOV R0,A;内部RAM(R0)A 其指令操作过程示意图如图3-1所示。又如:MOVX DPTR,A;外部RAM(DPTR)A 其指令操作过程示意图如图3-所示。,图3-1 MOV R0,A间接寻址示意图,片外RAM,2000H,DPTR,30H,A,2000H,30H,图-MOVX DPTR,A间接寻址示意图,返回本节,3.2.5 变址寻址,是基址寄存器(A)+变址寄存器(PC或DPTR)的间接寻址。变址寻址只能对程序存储器中数据进行操作。由于程序存储器是只读的,因此变址寻址只有读操作而无写操作,在指令符号上采用MOVC的形式(如图3-4所示)。例如:MOVC A,A+DPTR;A(A+DPTR)又 如:MOVC A,A+PC;A(A+PC)这种寻址方式多用于查表操作。,图3-4 变址寻址示意图,返回本节,3.2.6 相对寻址,以当前程序计数器PC的内容为基础,加上指令给出的一字节补码数(偏移量)形成新的PC值的寻址方式。相对寻址用于修改PC值,主要用于实现程序的分支转移。例如,SJMP 08H;PCPC+2+08H 指令操作示意图如图3-5所示。,图3-5 相对寻址示意图,返回本节,3.2.7 位寻址,位寻址只能对有位地址的单元作位寻址操作。位寻址其实是一种直接寻址方式,不过其地址是位地址。例如:SETB 10H;将10H位置1。若22H单元中存放着数据40H,22H单元的 D0位的位地址为10H,执行上述指令后(22H)=41H。又如:MOV 32H,C;32H进位位C ORL C,32H;CC32H,返回本节,3.2.8 寻址空间及符号注释,1.寻址空间:每种寻址方式可涉及的存储器空间,例如:MOV A,#55H;究竟属于立即寻址还是寄存器寻址呢?这要看以哪个操作数为参照系了。我们一般所说的寻址方式是指源操作数,所以此例为立即数寻址。,2.寻址方式中常用符号注释,Rn当前选中的寄存器区中的8个工作寄存器R0R7(n=07)。Ri当前选中的寄存器区中的2个工作寄存器(间接寻址寄存器)R0、R1(i=0,1)。direct8位的内部数据存储器单元中的地址。#data包含在指令中的8位常数。#data16包含在指令中的16位常数。addr1616位目的地址。addr1111位目的地址。,rel8位带符号的偏移字节,简称偏移量。DPTR数据指针,可用作16位地址寄存器。bit内部RAM或专用寄存器中的直接寻址位。A累加器。B专用寄存器,用于乘法和除法指令中。C进位标志或进位位,或布尔处理机中的累加器。$用于表示程序计数器的当前值。常出现在转移指令中,例如:SJMP$表示循环等待。,间址寄存器或基址寄存器的前缀,如Ri,DPTR。/位操作数的前缀,表示对该位操作数取反,如/bit。片内RAM的直接地址或寄存器。()由寻址的单元中的内容。箭头左边的内容被箭头右边的内容所代替。,返回本节,课堂作业:P67:1、4、7课后作业:P67:2、3、5,谢 谢 大 家 再 见!,3.3 MCS-51单片机的指令系统,学习目的及要求熟悉各类指令的功能、操作的对象和结果及指令执行后对PSW各个位的影响。8051指令系统的特点:不同的存储空间寻址方式不同,适用的指令不同。,3.3.1 数据传送类指令3.3.2 算术运算类指令3.3.3 逻辑运算类指令3.3.4 控制程序转移类指令3.3.5 调用子程序及返回指令3.3.6 位操作指令3.3.7 空操作指令,返回本章首页,3.3.1 数据传送类指令,数据传送类指令共28条,是将源操作数送到目的操作数。指令执行后,源操作数不变,目的操作数被源操作数取代。数据传送类指令用到的助记符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP8种。,源操作数可采用寄存器、寄存器间接、直接、立即、变址5种寻址方式寻址;目的操作数可以采用寄存器、寄存器间接、直接寻址3种寻址方式。数据传送指令是一种最基本最常用的操作,在通常的程序中占有极大的比例。,1以A为目的操作数,MOV A,Rn;A RnMOV A,direct;A(direct)MOV A,Ri;A(Ri)MOV A,#data;A#data上述指令是将源操作数指定的内容送到累加器A中。上述操作只影响PSW的P标志位。,2以Rn为目的操作数,MOV Rn,A;Rn AMOV Rn,direct;Rn(direct)MOV Rn,#data;Rn#data上述指令是将源操作数指定的内容送到当前工作寄存器组R0R7中的某个寄存器。例如:设(A)=78H,(R5)=47H,(70)=F2H。MOV R5,A;R5(A),(R5)=78H MOV R5,70H;R5(70H),(R5)=F2H MOV R5,#A3H;R5 A3,(R5)=A3H注:8051指令系统中没有“MOV Rn,Rn”传送指令。,3以直接地址为目的操作数,MOV direct,A;direct(A)MOV direct,Rn;direct(Rn)MOV direct,direct;目的direct(源direct)MOV direct,Ri;direct((Ri))MOV direct,#data;direct#data 上述指令是将源操作数指定的内容送到由直接地址direct所指出的片内存储单元中。,4以间接地址为目的操作数,MOV Ri,A;(Ri)AMOV Ri,direct;(Ri)(direct)MOV Ri,#data;(Ri)#data例如:设(30H)=6FH,R1=40H,MOV R1,30H,结果30H单元中数据取出送入R1间接寻址的40H单元,(40H)=6FH。,5以DPTR为目的操作数,MOV DPTR,#data16;DPTR#data16例如 执行 MOV DPTR,#2000H 后,(DPTR)=2000H。DPH 20H,DPL 00H这是唯一的16位立即数传送指令,把16位常数送入DPTR。,6访问外部数据RAM,在8051指令系统中,访问片外RAM只能用寄存器间接寻址,与累加器A配合,共四条指令。MOVX A,Ri;A(Ri)MOVX Ri,A;(Ri)A 寻址范围是片外256BRAM。MOVX A,DPTR;A(DPTR)MOVX DPTR,A;(DPTR)A 寻址范围是片外64KBRAM。,7读程序存储器(查表指令),注:数据表格放在程序存储器中(只有两条指令)。近程查表指令(256B)MOVC A,A+PC;A(A)+(PC)只能查找指令所在地址以后256B范围内的常数或代码。远程查表指令(64KB)MOVC A,A+DPTR;A(A)+(DPTR)查表范围可达ROM的64KB空间。,例如:在程序存储器中,数据表格为 1010H:02H 1011H:04H 1012H:06H 1013H:08H执行程序 1000H:MOV A,#0DH;A 0DH,偏移量 1002H:MOVC A,A+PC;A(0DH+1003H)1003H:MOV R0,A;R0H A 结果为(A)=02H,(R0)=02H,(PC)=1004H,又如:在程序存储器中,数据表格为 7010H:02H 7011H:04H 7012H:06H 7013H:08H执行程序 1000H:MOV A,#10H;A 10H,偏移量 1002H:MOV DPTR,#7000H;DPTR 7000H 1003H:MOVC A,A+DPTR;A(10H+7000H)结果为(A)=02H,8数据交换,l字节交换XCH A,Rn;A RnXCH A,direct;A(direct)XCH A,Ri;A(Ri)l半字节交换XCHD A,Ri;A03(Ri)03 低4位互换,高4位不变。SWAP A;A03A47(高低两半字节交换)注:上述交换指令的目的操作数为累加器A。,9堆栈操作,所谓堆栈是在片内RAM中按“先进后出,后进先出”原则设置的专用存储区。数据的进栈出栈由指针SP统一管理。堆栈的操作有如下两条专用指令:PUSH direct;SP(SP+1),(SP)(direct)POP direct;(direct)(SP),SP SP-1PUSH是进栈(或称为压入操作)指令。指令执行过程如图3-7所示。POP是出栈(或称为弹出操作)指令。指令执行过程如图3-8所示,图3-7 指令PUSH操作示意图,图3-8 指令POP操作示意图,【例3.1】将片内RAM 30H单元与40H单元中的内容互换。,方法1(直接地址传送法):MOV31H,30H MOV30H,40H MOV40H,31H SJMP$,方法2(间接地址传送法):MOVR0,#40H MOVR1,#30H MOVA,R0 MOVB,R1 MOVR1,A MOVR0,B SJMP$,方法3(字节交换传送法):MOVA,30H XCH A,40H MOV30H,A SJMP$,方法4(堆栈传送法):PUSH30H PUSH40H POP30H POP40H SJMP$,返回本节,课堂作业:P67:8、9、10、11、12、13课后作业:P67:6,返回本节,谢 谢 大 家 再 见!,3.3.2 算术运算类指令,8051算术运算指令包括加、减、乘、除基本四则运算。算术运算结果将使进位CY、半进位AC、溢出位OV三个标志位置位或复位,只有加1和减1指令不影响这些标志位。加、减、乘、除及十进制调整指令,目的操作数均为累加器A。,1加法指令(四条)ADD A,Rn;A A+RnADD A,direct;A A+(direct)ADD A,Ri;A A+(Ri)ADD A,#data;A A+#data,例如:设(A)=03CH,(R0)=0AAH,执行指令 ADDC,R0后,A=6DH。(A):1100 0011+(R0):1010 1010 1 0110 1101标志位CY=1,AC=0,2带进位加指令(四条)ADDC A,Rn;A A+Rn+CADDC A,direct;A A+(direct)+CADDC A,Ri;A A+(Ri)+CADDC A,#data;A A+#data+CC为来自PSW状态寄存器中的进位位C。功能:把源操作数指出的内容和进位标志位CY都加到累加器A中,结果存放在A中。,例如:设(A)=03CH,(R0)=0AAH,CY=1,执行指令 ADDC,R0后,A=6EH。(A):1100 0011+(CY):0000 0001 1100 0100+(R0):1010 1010 0110 1110标志位CY=1,AC=0,3带借位减指令SUBB A,Rn;A A-Rn-CSUBB A,direct;A A-(direct)-CSUBB A,Ri;A A-(Ri)-CSUBB A,#data;A A-#data C功能:从累加器A中减去源操作数指出的内容和进位标志位CY的值累加器A中,差存放在累加器A中。,例如,设(A)=0C9H,(R2)=20H,(20H)=54H,CY=1,执行指令 SUBB,R2后,A=74H。(A):1100 1001(CY):0000 0001 1100 1000(R2):0101 0100 0111 0100标志位CY=0,AC=0,4乘法指令(一条)MUL AB;BA ABA和B中各存放一个8位无符号数,指令执行后,16位乘积的高8位在B中,低8位存A中。例如:(A)=30H,(B)=60H;执行 MUL AB 后,A=00H,B=12H。,5除法指令 DIV AB;AB商在A中,余数在B中 A和B中各存放一个8位无符号数,A放被除数,B放除数。指令执行后,A中存放商,B中存入余数。若B=00H,则指令执行后OV=1,A与B不变。例如:(A)=30H,(B)=07H;执行 DIV AB 后,A=06H,B=06H。,6加1指令(5条)INC A;A A+1INC Rn;Rn Rn+1INC direct;(direct)(direct)+1INC Ri;(Ri)(Ri)+1INC DPTR;DPTR DPTR+1,功能:将操作数所指定的单元加,其操作不影响PSW;若原单元内容为FFH,加1后溢出为00H,也不影响PSW。例如,(30H)=22H,执行 INC 30H 后,(30H)=23H。,7减1指令DEC A;A A-1DEC Rn;Rn Rn-1DEC direct;direct(direct)-1DEC Ri;(Ri)(Ri)-1,功能:将操作数所指定的单元减,其操作不影响PSW;若原单元内容为00H,减1后溢出为FFH,也不影响PSW。例如:R0=30H,(30H)=22H,执行 DEC R0 后,(30H)=21H。,8十进制调整指令DA A;把A中按二进制相加的结果调整成按BCD码相加的结果例如,A=65BCD,B=78BCD,C=0,执行下列语句ADDA,BDAA后,A=43 BCD,C=1。,【例3.2】试把存放在R1R2和R3R4中的两个16位数相加,结果存于R5R6中。解:参考程序如下:MOVA,R2;取第一个数的低8位 ADDA,R4;两数的低8位相加 MOVR6,A;保存和的低8位,MOVA,R1;取第一个数的高8位 ADDCA,R3;两数的高8位相加,并把低8位相加时的进位位加进来 MOVR5,A;把相加的高8位存入R5寄存器中 SJMP$,返回本节,课堂作业:P67:8、9、10、11、12、13课后作业:P67:6,谢 谢 大 家 再 见!,3.3.3 逻辑运算指令,1清零与取反指令2移位指令3“与”操作指令 4“或”操作指令5“异或”操作指令,返回本节,3.3.4 程序转移类指令,1无条件转移指令l绝对(短)转移指令AJMPaddr11;PC100 addr11 l长转移指令LJMPaddr16;PC addr16l短(相对)转移指令SJMPrel;PC PC+2+rell 间接转移指令JMPA+DPTR;PC A+DPTR,2条件转移指令l累加器为零(非零)转移指令l减1非零转移指令l两数不等转移指令l相对偏移量rel的求法,表3-1 程序存储器空间32个2K地址范围,返回本节,3.3.5 调用子程序及返回指令,1调用子程序指令LCALL addr16;PCPC+3,SPSP+1,(SP)PC710;SPSP+1,(SP)PC158,PCaddr16ACALL addr11;PC PC+2,SPSP+1,(SP)PC70;SP SP+1,(SP)PC158,PC100addr11,2返回指令RET;PC158(SP),SPSP-1;PC70(SP),SPSP-1RETI;PC158(SP),SPSP-1;PC70(SP),SPSP-1,返回本节,3.3.6 位操作指令,1位数据传送指令MOVC,bit;C(bit)MOV bit,C;bitC2位状态修改指令CLRC;C0CLRbit;(bit)0CPLC;CCPLbit;(bit)(bit)SETBC;C1SETBbit;(bit)1,3位逻辑运算指令ANLC,bit;CC(bit)ANLC,/bit;CC(bit)ORLC,bit;CC(bit)ORLC,/bit;CC(bit),4位转移指令JCrel;若C=1,则转移(PCPC+2+rel);否则程序顺序执行JNCrel;若C=0,则转移(PCPC+2+rel);否则程序顺序执JBbit,rel;若(bit)=1,则转移(PCPC+3+rel);否则程序顺序执行,JNBbit,rel;若(bit)=0,则转移(PCPC+3+rel);否则程序顺序执行JBCbit,rel;若(bit)=1,则PCPC+3+rel,(bit)0;否则程序顺序执行功能:分别检测指定位是1还是0,若条件符合,则CPU转向指定的目标地址去执行程序;否则,顺序执行下条指令。,返回本节,3.3.7 空操作指令,NOP;PC PC+1这是一条单字节指令。执行时,不作任何操作(即空操作),仅将程序计数器PC的内容加1,使CPU指向下一条指令继续执行程序。这条指令常用来产生一个机器周期的时间延迟。,返回本节,本章到此结束,谢谢您的光临!,结束放映,返回本章首页,THANK YOU VERY MUCH!,

    注意事项

    本文(三章节8051单片机指令系统.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开