欢迎来到天天文库
浏览记录
ID:48248120
大小:707.50 KB
页数:106页
时间:2020-01-18
《第3章 MCS-51 的指令系统new1.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第三章MCS-51的指令系统3.1指令系统概述3.2指令系统的寻址方式3.3MCS-51指令系统分类介绍3.1指令系统概述首先应该明确一个概念,什么是指令系统。我们把MCS-51单片机所能执行的指令的集合称为其指令系统。指令的表示方法称为指令格式,一条指令通常由两部分组成,即操作码和操作数。操作码操作数指令的性质指令操作的对象当然操作数并不一定是一个具体的数据,也有可能仅指出到哪里取得数据的地址或符号。MCS-51的基本指令共111条,下面是指令系统按空间和时间上的划分:从上表我们可以看出,绝大多数指令占用单字节或双字节,并且都能在1--2个机器周期内完成。由此可见,MCS-51指令系统对存储
2、空间和时间的利用率较高。3.2MCS-51指令系统的寻址方式所谓寻址就是寻找确定参与操作的数的真正地址。一般来说,寻址方式越多则计算机的功能就越强,灵活性亦越大,指令系统也就越复杂。MCS-51单片机的指令系统共有7种寻址方式。3.2.1符号注释在描述MCS-51指令系统的功能时,我们经常使用下面符号,其意义如下:Rn(n=0--7)当前选中的寄存器区的8个工作寄存器R0--R7Ri(i=0、1)当前选中的寄存器区中可作地址寄存器的2个寄存器R0、R1。Direct直接地址,即8位的内部数据存储器单元或特殊功能寄存器的地址。#data指令中的8位常数#data16指令中的16位常数Rel8位的
3、有符号偏移量。用于SJMP或所有的条件转移指令中。偏移量按相对于下一条指令的第一个字节地址与跳转后指令的第一个字节地址之差计算,在-128~+127范围内取值。DPTR数据指针,可用作16位的地址寄存器Bit内部RAM或特殊功能寄存器中的直接寻址位地址@间址寄存器或基址寄存器的前缀。如@Ri,@A+DPTR(X)X中的内容((X))由X寻址的单元中的内容Cy进位标志或进位位,也可作为位处理机中的1位累加器。/位操作数的前缀,表示对该位操作数取反,如/bit。3.2.2寻址方式1、立即寻址2、直接寻址3、寄存器寻址4、寄存器间接寻址5、变址寻址6、相对寻址7、位寻址立即寻址指令中直接给出操作数。
4、立即操作数用前面加有#号的8位或16位数来表示。8位立即操作数占一个字节,16位立即操作数占二个字节。例如:MOVA,#60H;A←#60HMOVDPTR,#3400HDPTR←#3400HMOV30H,#40H;(30H)←#40H指令代码分别为:74H60H90H34H00H75H30H40H直接寻址指令直接给出操作数地址。占一个字节。可访问两种地址空间:特殊功能寄存器地址空间唯一能访问该空间的寻址方式。片内内部RAM(128个字节:00H~7FH)指令形如MOVA,direct指令代码:11100101direct对于特殊功能寄存器,在助记符指令中可直接用符号来代替地址,如:MOVA,P
5、0(MOVA,80H这两条指令是等价的)表示将P0口的内容传送给A。思考:MOV50H,40H占多少字节?例:MOVA,40H指令代码1110010101000000即为:E5H40H寄存器寻址寻址的对象为选定寄存器区的8个工作寄存器R0--R7,寄存器A、B、DPTR、和Cy位。这种寻址方式中,被寻址的寄存器的内容就是操作数,一般和操作码共占一个字节.例:单字节指令:MOVA,Rn(n=0~7)指令代码:11101iii(iii=000~111)即为:E8H-EFH操作码的低3位指示所用的寄存器CLRAINCDPTRADDR5,#20H操作数采用什么寻址方式?指令占多少字节?思考:寄存器间接
6、寻址以寄存器中内容为地址,以该地址中内容为操作数的寻址方式。能用于寄存器间接寻址的寄存器有R0,R1,DPTR,SP。其中R0、R1必须是工作寄存器组中的寄存器。SP仅用于堆栈操作。访问内部RAM或外部数据存储器的低256个字节时,可采用R0或R1作为间址寄存器,通用形式为@Ri。MOVA,@Ri(i=0、1)例:MOVA,@R0,指令代码:11100110。最低位是0还是1区分现用寄存器为R0还是R1。假设该条指令存放在2030H,工作寄存器为第0组,(R0)=50H。50H为片内RAM的一个单元(50H)=ACH。M0VA,@R0该条指令的执行过程ACHACCACH50H2030HE6H程
7、序存储区40H01H……50H00H片内RAM区(R0)E5H2130HMOVXA,@Ri(i=0、1)例:MOVXA,@R1,指令代码:11100011。假设该条指令存放在2030H,工作寄存器为第0组,(R1)=AFH。片外RAM(AFH)=30H。指令执行过程:最低位是0还是1区分现用寄存器为R0还是R1。E3H2030H程序存储区AFH片内RAM区(R1)01H30HAFH片外数据存储区3
此文档下载收益归作者所有