MSC51-3-80C51单片机的指令系统.ppt_第1页
MSC51-3-80C51单片机的指令系统.ppt_第2页
MSC51-3-80C51单片机的指令系统.ppt_第3页
MSC51-3-80C51单片机的指令系统.ppt_第4页
MSC51-3-80C51单片机的指令系统.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

第三章80C51单片机指令系统,3.1指令系统概要一、指令系统分类及技术指标共111种指令,按功能分为5类数据传送(29条)算术操作(24条)逻辑操作(24条)控制转移(17条)布尔变量操作(17条)指令字节数单字节指令占44%双字节指令占42%三字节指令占15%指令执行的时间单机器周期(12/fosc)58%双机器周期(24/fosc)41%两条指令是4个机器周期,二、汇编语言中常用符号,设:fosc=12MHz,则对应的机器周期为单机器周期=1s双机器周期=2s4个机器周期=4s,3.28051存储器结构一、存储器结构8051单片机程序存储器和数据存储器分开由PSEN选通外部程序存储器,由RD(P3.7)和WR(P3.6)读写外部数据存储器(MOVX)(一)程序存储器存放程序或固定数据,只能取指令读或程序MOVC读取,说明:1、8051可寻址64K程序空间;2、8051内部有4KBROM;3、执行到0FFFH到外部取指;,4、8031无内部ROM;5、程序存储器访问通过(1)地址有效;(2)PSEN有效;,(二)数据存储区,8051分为片内数据存储器(256B)和片外数据存储器,1、内部RAM由8位地址线寻址00H7FH:存储区80HFFH:特殊功能寄存器区2、片外RAM由16位地址寻址寻址空间64KB片外数据存储器访问条件:(1)地址信号有效;(2)RD/WR信号有效;,二、内部数据存储器内部数据存储器低128字节为RAM高128字节为特殊功能寄存器区,(一)RAM区1、通用寄存器区4组8个8位寄存器R0R7由PSW中的RS1,RS0选择当前工作区2、位寻址空间20H2FH字节可以位寻址128位00H7FH3、寻址内部RAM空间30H7FH字节(80B),4、特殊功能寄存器,*表示可以位寻址的寄存器(其地址可被8整除)共21个SFR,离散分布只能使用直接寻址,3.38051寻址方式(7种)和寻址空间,3.4.1数据传送指令(29条),一、向累加器A的传送(目的)MOVA,Rn;(A)(Rn)MOVA,direct;(A)(direct)MOVA,Ri;(A)(Ri)MOVA,#data;(A)data二、向通用寄存器传送MOVRn,A;(Rn)(A)MOVRn,direct;(Rn)(direct)MOVRn,#data;(Rn)data,三、向直接地址传送MOVdirect,A;(direct)(A)MOVdirect,Rn;(direct)(Rn)MOVdirect,direct;(direct)(direct)MOVdirect,Ri;(direct)(Ri)MOVdirect,#data;(direct)data四、间址传送MOVRi,A;(Ri)(A)MOVRi,direct;(Ri)(direct)MOVRi,#data;(Ri)data,3.4MCS-51指令系统,六、累加器传送指令字节交换指令XCHA,Rn;(A)(Rn)XCHA,direct;(A)(direct)XCHA,Ri;(A)(Ri)半字节交换指令XCHDA,Ri;(A03)(Ri)03)累加器高4位与低4位数据互换SWAPA;(A03)(A47),五、堆栈操作,入栈指令PUSHdirect;(sp)(sp)+1,;(sp)(direct)出栈指令POPdirect;(direct)(sp),;(sp)(sp)-1,累加器与外部RAM的传送MOVXA,Ri;(A)(Ri)MOVXA,DPTR;(A)(DPTR)MOVXRi,A;(Ri)(A),WR有效MOVXDPTR,A;WR(P3.6)有效;(DPTR)(A),累加器与程序存储器传送MOVCA,A+DPTR;(A)(A)+(DPTR)MOVCA,A+PC;(PC)(PC)+1,(A)(A)+(PC),七、目标地址传送指令MOVDPTR,#data16;(DPTR)data16,4、十进制调整指令DAA;对(A)的加结果进行十进制调整,3.4.2算术运算指令(24条),一、加法指令1、加法ADDA,Rn;(A)(A)+(Rn)ADDA,direct;(A)(A)+(direct)ADDA,Ri;(A)(A)+(Ri)ADDA,#data;(A)(A)+data注:加/减法指令影响Ac,Cy,OV,P,3、加1指令INCA;(A)(A)+1INCRn;(Rn)(Rn)+1INCdirect;(direct)(direct)+1INCRi;(Ri)(Ri)+1INCDPTR;(DPTR)(DPTR)+1注:加/减1指令不影响PSW(Cy),2、带进位加法ADDCA,Rn;(A)(A)+(Rn)+(C)ADDCA,direct;(A)(A)+(direct)+(C)ADDCA,Ri;(A)(A)+(Ri)+(C)ADDCA,#data;(A)(A)+data+(C),三、乘法指令MULAB;(BA)(A)*(B)(A)0FFH,则OV=1,(B)=非零否则,OV=0,(B)=0,四、除法指令DIVAB;(A)(A)/(B);(B)(A)%(B)Cy=OV=0若(B)=00H,(A)和(B)结果不定,置OV=1,表示0除数错误(Cy=0),无不带借位指令使用前要先CLRC,使Cy=0影响标志位PSW:Cy,AC,OV,P,二、减法指令,1、带借位减法指令SUBBA,Rn;(A)(A)-(Rn)-(C)SUBBA,direct;(A)(A)-(direct)-(C)SUBBA,Ri;(A)(A)-(Ri)-(C)SUBBA,#data;(A)(A)-data-(C),2、减1指令DECA;(A)(A)-1DECRn;(Rn)(Rn)-1DECdirect;(direct)(direct)-1DECRi;(Ri)(Ri)-1不影响PSW,6、累加器A带进位循环右移RRCA;,3.4.3逻辑运算指令(24条),一、单操作数逻辑运算指令1、累加器A清零CLRA;(A)0,3、累加器A循环左移RLA;,4、累加器A循环右移RRA;,5、累加器A带进位循环左移RLCA;,RLCA:可以实现快速(A)2RRCA:可以实现快速(A)/2,二、双操作数逻辑运算指令,逻辑操作指令只影响标志位P1、逻辑“与”指令ANLA,Rn;(A)(A)(direct)(direct)(A)(A)|(Rn)ORLA,direct;(A)(A)|(direct)ORLA,Ri;(A)(A)|(Ri)ORLA,#data;(A)(A)|dataORLdirect,A;(direct)(direct)|(A)ORLdirect,#data;(direct)(direct)|data,(2)长调用(64K)LCALLaddr16;(pc)(pc)+3;(sp)(sp)+1,(sp)(pc07);(sp)(sp)+1,(sp)(pc815);(pc)addr16,XRLA,Rn;(A)(A)(Rn)XRLA,direct;(A)(A)(direct)XRLA,Ri;(A)(A)(Ri)XRLA,#data;(A)(A)dataXRLdirect,A;(direct)(direct)(A)XRLdirect,#data;(direct)(direct)data,4.5控制转移指令(17条)一、无条件转移指令1、调用指令(1)绝对调用(2K)ACALLaddr11;(pc)(pc+2);(sp)(sp)+1,(sp)(pc07);(sp)(sp)+1,(sp)(pc815);(pc010)addr010;(pc1115)不变,3、“异或”指令,(3)相对转移(短转移)SJMPrel;(pc)(pc)+rel,(2)中断程序返回RETI;(pc815)(sp),(sp)(sp)-1;(pc07)(sp),(sp)(sp)-1;开放中断逻辑,5、空操作指令NOP;(pc)(pc)+1用于产生一个机器周期的延迟,4、间接转移指令(散转指令)JMPA+DPTR;(pc)(A)+(DPTR),3、转移指令(1)绝对转移(短转移)AJMPaddr11;(pc010)addr010;(pc1115)不变,2、返回指令,(1)子程序返回(ACALL和LCALL)RET;(pc815)(sp),(sp)(sp)-1;(pc07)(sp),(sp)(sp)-1,(2)长转移LJMPaddr16;(pc)addr16,二、条件转移指令,1、判零转移指令(1)JZrel;当(A)为0,则(pc)(pc)+rel;否则,顺序执行(2)JNZrel;当(A)非0,则(pc)(pc)+rel;否则,顺序执行,3、跳转循环指令(内容0)DJNZRn,rel;(Rn)(Rn)-1,;若(Rn)非0,则(pc)(pc)+rel;否则,顺序执行DJNZdirect,rel;(direct)(direct)-1,;若(direct)非0,则(pc)(pc)+rel;否则,顺序执行,2、比较转移指令(-128B+127B)CJNEA,direct,relCJNEA,#data,relCJNERn,#data,relCJNERn,#data,rel;若不相等,(pc)(pc)+rel;否则,顺序执行,3.4.4布尔处理器指令(17条),8051的位(布尔)处理器具有一系列位指令集布尔变量传送位状态控制布尔逻辑运算位条件转移位变量地址空间片内低RAM,Bit地址范围:00H7FH(128位)片内高RAM,地址能被8整除的SFR中对应各位(11个):80HF7H,MOVC,bit;(C)(bit)MOVbit,C;(bit)(C)C为进位标志位Cy(不影响PSW)二、布尔状态控制1、位清“0”指令CLRC;(C)0CLRbit;(bit)02、位置“1”指令SETBC;(C)1SETBbit;(bit)1,四、位条件转移指令1、判断C转移JCrel;当(C)为1,则(pc)(pc)+rel;否则,顺序执行JNCrel;当(C)为0,则(pc)(pc)+rel;否则,顺序执行,一、布尔数据传送指令,pc+rel中,(pc)表示为当前的指令地址即:执行跳转指令后的下一条指令地址,3、判断位变量转移并清0指令JBCbit,rel;当(bit)为1,则(bit)0,(pc)(pc)+rel;否则,顺序执行可用于对SFR的bit检测和软件复位(TFX),2、判断位变量转移指令,JBbit,rel;当(bit)为1,则(pc)(pc)+rel;否则,

温馨提示

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

评论

0/150

提交评论