欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    单片微型计算机原理与接口技术 第二版 第3章___80C51单片微机的指系统06[1].12[....ppt

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

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

    单片微型计算机原理与接口技术 第二版 第3章___80C51单片微机的指系统06[1].12[....ppt

    普通高等教育“十一五”国家级规划教材单片微型计算机原理与接口技术单片微型计算机原理与接口技术(第二版)(第二版)高锋高锋编著编著科学出版社科学出版社北京北京第三章第三章80C51单片微机的指令系单片微机的指令系统统3.180C51指令系统概述指令系统概述80C51指令系统专用于指令系统专用于80C51系列单片微机,是一系列单片微机,是一个具有个具有255种操作码种操作码(00H至至FFH,除,除A5H外外)的集合。的集合。用汇编语言表达操作代码时,用汇编语言表达操作代码时,42种助记符代表了种助记符代表了33种功能,有的功能如数据传送,可以有几种助记符,种功能,有的功能如数据传送,可以有几种助记符,如如MOV、MOVC、MOVX。指令功能助记符与操作数各种寻址方式的结合,指令功能助记符与操作数各种寻址方式的结合,共构造出共构造出111种指令,同一种指令所对应的操作码可以种指令,同一种指令所对应的操作码可以多至多至8种种(如指令中如指令中Rn对应寄存器对应寄存器R0R7)。寻寻址址方方式式就就是是在在指指令令中中给给出出的的寻寻找找操操作作数数或或操操作作数所在地址的方法。数所在地址的方法。执行任何一条指令都需要使用操作数。执行任何一条指令都需要使用操作数。80C5l指令系统中共有指令系统中共有7种寻址方式。种寻址方式。3.1.1寻址方式寻址方式立即寻址立即寻址在指令中直接给出操作数,出现在指令中的在指令中直接给出操作数,出现在指令中的操作数称为立即数。操作数称为立即数。在立即数前面必需加上前缀在立即数前面必需加上前缀“”。例如:指令例如:指令MOVDPTR,1234H1234H是是立立即即数数,指指令令功功能能是是把把16位位立立即即数数1234H送入数据指针送入数据指针DPTR中,如中,如图图31所示。所示。2直接寻址直接寻址在指令中直接给出操作数单元的地址。在指令中直接给出操作数单元的地址。例如:指令例如:指令MOVA,3AH功功能能:把把片片内内RAM中中3AH单单元元内内的的数数据据传传送送给给累累加器加器A,如,如图图32所示。所示。直接寻址方式只能给出直接寻址方式只能给出8位地址,限于片内位地址,限于片内RAM:低低128单元,在指令中直接以单元地址形式给出。单元,在指令中直接以单元地址形式给出。特特殊殊功功能能寄寄存存器器,可可以以单单元元地地址址形形式式给给出出外外,还还可可以以寄寄存存器器符符号号形形式式给给出出。直直接接寻寻址址是是访访问问特特殊殊功功能能寄寄存存器的唯一方法。器的唯一方法。3寄存器寻址寄存器寻址在指令中将指定寄存器的内容作为操作数。在指令中将指定寄存器的内容作为操作数。寄存器寻址方式中,用符号名称来表示寄存器。寄存器寻址方式中,用符号名称来表示寄存器。例如:指令例如:指令INCR0功功能能 把把寄寄存存器器R0的的内内容容加加1,再再送送回回R0中中。由由于于操操作作数数在在R0中中,指指定定了了R0,也也就就得得到到了了操操作作数数,如如图图33所示。所示。寄存器寻址方式的寻址范围包括:寄存器寻址方式的寻址范围包括:(1)4个寄存器组共个寄存器组共32个通用寄存器。个通用寄存器。指指令令中中只只能能使使用用当当前前寄寄存存器器组组。通通过过指指定定PSW中中的的RS1、RS0,以选择使用的当前寄存器组。,以选择使用的当前寄存器组。(2)部分特殊功能寄存器。)部分特殊功能寄存器。例如累加器例如累加器A、AB寄存器对以及数据指针寄存器对以及数据指针DPTR。4寄存器间接寻址寄存器间接寻址在在指指令令中中给给出出的的寄寄存存器器内内容容是是操操作作数数的的地地址址,从从该该地址中取出的才是操作数。地址中取出的才是操作数。寄存器间接寻址也需以寄存器符号名称的形式表示。寄存器间接寻址也需以寄存器符号名称的形式表示。在寄存器间接寻址中,在寄存器的名称前面加前缀在寄存器间接寻址中,在寄存器的名称前面加前缀“”。例如:例如:指令指令ANLA,R1假假定定R1寄寄存存器器的的内内容容是是60H,指指令令的的功功能能是是以以R1寄寄存存器器的的内内容容60H为为地地址址,将将60H地地址址单单元元的的内内容容与与累累加加器器A中中的的数数相相“与与”,其其结结果果仍仍存存放放在在A中中、其其功功能能示示意意请请参见参见图图34。寄存器间接寻址的寻址范围:寄存器间接寻址的寻址范围:片片内内RAM的的低低128单单元元,只只能能采采用用R0或或R1为为间间址址寄存器。其形式为寄存器。其形式为Ri(i0,1)。)。片片外外RAM的的64KB单单元元,使使用用DPTR作作为为间间址址寄寄存存器。例如器。例如 MOVXA,DPTR。片外片外RAM低低256单元,使用单元,使用R0或或R1作间址寄存器。作间址寄存器。例如:例如:MOVXA,R0。堆堆栈栈区区:堆堆栈栈操操作作指指令令PUSH和和POP,以以SP作作间间址址寄存器的间接寻址方式。寄存器的间接寻址方式。相对寻址相对寻址在指令中给出的操作数为程序转移的偏移量。在指令中给出的操作数为程序转移的偏移量。在在相相对对转转移移指指令令中中,给给出出地地址址偏偏移移量量(以以“rel”表表示示),把把PC的当前值加上偏移量就构成了程序转移的目的地址。的当前值加上偏移量就构成了程序转移的目的地址。转移的目的地址可用如下公式表示:转移的目的地址可用如下公式表示:目的地址目的地址(转移指令所在地址转移指令字节数转移指令所在地址转移指令字节数)rel在在8051的的指指令令系系统统中中,有有许许多多条条相相对对转转移移指指令令,这这些些指指令令多数均为两字节指令只有个别的是三字节的指令。多数均为两字节指令只有个别的是三字节的指令。偏偏移移量量rel是是一一个个带带符符号号的的8位位二二进进制制补补码码数数,所所能能表表示示的的数数的的范范围围是是一一128127。因因此此,以以相相对对转转移移指指令令的的所所在在地地址址为为基基点点,向向前前最最大大可可转转移移(127十十转转移移指指令令字字节节数数)个个单单元元地地址址,向向后后最大可转移(最大可转移(128一转移指令字节数)个单元地址。一转移指令字节数)个单元地址。例如:指令例如:指令JC80H若若进进位位位位C为为0,则则程程序序计计数数器器PC中中的的内内容容加加2,即即顺顺序序往往下;下;若若进进位位位位C为为1,则则以以程程序序计计数数器器PC中中当当前前值值为为基基地地址址,加加上上偏偏移移量量80H后后所所得得结结果果作作为为该该转转移移指指令令的的目目的的地地址址,其其执执行行示示意图如意图如图图35所示。所示。指令的操作码存在指令的操作码存在1000H单元,偏移量存在单元,偏移量存在1001H单元。单元。执行该指令后,程序计数器执行该指令后,程序计数器PC指向指向1002H(即当前值)。这里(即当前值)。这里80H即即128,故,故1002H与与128(80H)相加(补码运算)后得到)相加(补码运算)后得到转移地址转移地址0F82H。1002H80H0F82H6变址寻址变址寻址以以DPTR或或PC为基址寄存器,累加器为基址寄存器,累加器A为变址寄存器,以为变址寄存器,以两者内容相加后形成的两者内容相加后形成的16位程序存储器地址作为操作数地址。位程序存储器地址作为操作数地址。又称基址寄存器变址寄存器间接寻址。又称基址寄存器变址寄存器间接寻址。例如:例如:MOVCA,ADPTR其其功功能能是是把把DPTR和和A的的内内容容相相加加所所得得到到的的程程序序存存储储器器地地址址单元的内容送单元的内容送A。假定指令执行前假定指令执行前(A)54H,(,(DPTR)1256H则该指令的操作示意请参见则该指令的操作示意请参见图图36。变址寻址形成的操作数地址为变址寻址形成的操作数地址为1256H54H12AAH,若,若12AAH单元的内容为单元的内容为00H,则该指令执行的结果是,则该指令执行的结果是A的内容为的内容为00H。80C51指令系统中的变址寻址指令有如下特点:指令系统中的变址寻址指令有如下特点:变址寻址方式只能对程序存储器进行寻址变址寻址方式只能对程序存储器进行寻址。变址寻址指令只有变址寻址指令只有3条条MOVCA,ADPTRMOVCA,APCJMPADPTR这这3条指令都是单字节指令。条指令都是单字节指令。变址寻址方式用于查表操作。变址寻址方式用于查表操作。7位寻址位寻址位寻址的寻址范围:位寻址的寻址范围:(1)片内)片内RAM中的位寻址区。中的位寻址区。片片内内RAM中中的的单单元元地地址址20H2FH,共共16个个单单元元128位位,为位寻址区,位地址是为位寻址区,位地址是00H7FH。例例如如MOVC,2BH指指令令的的功功能能是是把把位位寻寻址址区区的的2BH位位状状态态送送累加位累加位C。(2)可位寻址的特殊功能寄存器位。可位寻址的特殊功能寄存器位。可供位寻址的特殊功能寄存器共有可供位寻址的特殊功能寄存器共有11个,有寻址位个,有寻址位83位。位。寻址位在指令中有以下寻址位在指令中有以下4种表示方法:种表示方法:直接使用位地址表示。直接使用位地址表示。单元地址加位。例如单元地址加位。例如88H单元的位单元的位5,则表示为,则表示为88H.5。特特殊殊功功能能寄寄存存器器符符号号加加位位、例例如如PSW寄寄存存器器的的位位5,可可表表示示为为:为为PSW.5。位位名名称称表表示示方方法法,特特殊殊功功能能寄寄存存器器中中的的一一些些寻寻址址位位是是有有名名称称的的,例如例如PSW寄存器位寄存器位5为为F0标志位,则可使用标志位,则可使用F0表示该位。表示该位。对于指令中的操作数,因为指令操作常伴有从右向左传送对于指令中的操作数,因为指令操作常伴有从右向左传送数据的内容,所以常把左边操作数称为目的操作数,而右边操数据的内容,所以常把左边操作数称为目的操作数,而右边操作数称为源操作数。作数称为源操作数。80C51指令系统的指令系统的7种寻址方式概括起来如种寻址方式概括起来如表表31所列。所列。指令的表示方法称之为指令格式,其内容包括指指令的表示方法称之为指令格式,其内容包括指令的长度和指令内部信息的安排等。令的长度和指令内部信息的安排等。一条指令通常由操作码和操作数两部分组成。一条指令通常由操作码和操作数两部分组成。操作码规定指令所完成的操作,操作数表示操作操作码规定指令所完成的操作,操作数表示操作的对象。操作数可能是一个具体的数据,也可能是指出的对象。操作数可能是一个具体的数据,也可能是指出取得数据的地址或符号。取得数据的地址或符号。3.l.2指令格式指令格式单字节指令单字节指令指令只有一个字节,操作码和操作数同在一个字节中。在指令只有一个字节,操作码和操作数同在一个字节中。在80C51系列的指令系统中,共有系列的指令系统中,共有49条单字节指令。条单字节指令。操作码操作码地址码地址码如如MOVA,Rn指令机器码为单字节指令机器码为单字节11001rrr,其中,其中rrr可表可表示为示为000111,分别代表,分别代表R0R7双双字字节节指指令令:其其中中一一个个字字节节为为操操作作码码,另另一一个个字字节节是是操作数。在操作数。在80C51系列的指令系统中,共有系列的指令系统中,共有45条双字节指令。条双字节指令。操作码操作码地址码地址码数据或地址码数据或地址码如如MOVA,#data8位立即数位立即数data需占一个字节,操作码也需一需占一个字节,操作码也需一个字节。个字节。三字节指令三字节指令:操作码占一个字节,操作数占两个字节。其中:操作码占一个字节,操作数占两个字节。其中操作数既可能是数据,也可能是地址。在操作数既可能是数据,也可能是地址。在80C51系列的指令系统系列的指令系统中,共有中,共有17条三字节指令。条三字节指令。操作码操作码数据或地址码数据或地址码数据或地址码数据或地址码如如ANLdirect,#data指指令令需需3个个字字节节,第第1字字节节为为操操作作码码,第第2字节为字节为8位直接地址位直接地址direct,第,第3字节为字节为8位立即数位立即数data。从指令执行时间来看,单机器周期指令有从指令执行时间来看,单机器周期指令有64种,双机器周种,双机器周期指令有期指令有45种,只有乘法、除法指令的执行时间为种,只有乘法、除法指令的执行时间为4个机器周期。个机器周期。在在12MHz晶振条件下,晶振条件下,80C51的指令执行时间分别为的指令执行时间分别为1S、2S、4S。80C51的指令系统,共有的指令系统,共有111条指令,按其功能可分为条指令,按其功能可分为5大类:大类:数据传送类指令(数据传送类指令(28条);条);算术运算类指令(算术运算类指令(24条);条);逻辑运算类指令(逻辑运算类指令(25条);条);控制转移类指令控制转移类指令(17条条);布尔操作(位)类指令(布尔操作(位)类指令(17条)。条)。3.1.3 3.1.3 指令分类指令分类Rnn07,表示当前寄存器组的,表示当前寄存器组的8个通用寄存个通用寄存器器R0R7中的一个。中的一个。Rii0,l,可可用用作作间间接接寻寻址址的的寄寄存存器器,只只能能是是R0、R1两个寄存器中的一个。两个寄存器中的一个。direct内内部部的的8位位地地址址,既既可可以以指指片片内内RAM的的低低128个个单单元元地地址址,也也可可以以指指特特殊殊功功能能寄寄存存器器的的地地址址或或符符号号名称,因此,名称,因此,direct表示直接寻址方式。表示直接寻址方式。#data指令中所含的指令中所含的8位立即数。位立即数。#data16指令中所含的指令中所含的16位立即数。位立即数。3.1.4指令系统中使用符号说明指令系统中使用符号说明addr1616位位目目的的地地址址,只只限限于于在在LCALL和和LJMP指指令令中中使用。使用。addr1111位位目目的的地地址址,只只限限于于在在ACALL和和AJMP指指令令中使用。中使用。rel相相对对转转移移指指令令中中的的偏偏移移量量,为为8位位带带符符号号数数。为为SJMP和和所所有有条条件件转转移移指指令令所所用用。转转移移范范围围为为相相对于下一条指令笫一字节地址的对于下一条指令笫一字节地址的-128127。DPTR数据指针。数据指针。bit片片内内RAM(包包括括部部分分特特殊殊功功能能寄寄存存器器)中中的的直接寻址位。直接寻址位。A累加器。累加器。BB寄存器。寄存器。C进进位位标标志志位位,是是布布尔尔处处理理机机中中的的累累加加器器,称称之之为为累加位。累加位。间址寄存器的前缀标志。间址寄存器的前缀标志。/位地址的前缀标志,表示对该位操作数取反。位地址的前缀标志,表示对该位操作数取反。()某寄存器或某单元的内容。某寄存器或某单元的内容。()由)由寻址的单元中的内容。寻址的单元中的内容。箭头左边的内容被箭头右边的内容所取代。箭头左边的内容被箭头右边的内容所取代。单单片片微微机机执执行行指指令令的的过过程程,分分为为取取指指令令和和执执行行指指令两项基本内容。令两项基本内容。在在取取指指阶阶段段,单单片片微微机机从从程程序序存存储储器器中中取取出出指指令令操操作作码码,送送到到指指令令寄寄存存器器IR中中,通通过过指指令令译译码码器器的的译译码码,产生一系列的控制信号。产生一系列的控制信号。在指令执行阶段中,利用指令译码产生的控制信在指令执行阶段中,利用指令译码产生的控制信号,进行本指令规定的操作号,进行本指令规定的操作。3.1.5 3.1.5 单片微机执行指令的过程单片微机执行指令的过程3.2数据传送类指令数据传送类指令数据传送方向及相互关系见数据传送方向及相互关系见图图37。可分为内部可分为内部8位数据传送指令、位数据传送指令、16位数据传送指位数据传送指令令(专用于设定地址指针专用于设定地址指针)、外部数据传送指令、程序存、外部数据传送指令、程序存储器数据传送指令、交换指令和堆栈操作指令。助记储器数据传送指令、交换指令和堆栈操作指令。助记符有符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP等等8种。种。源操作数可采用寄存器、寄存器间接、直接、立即、源操作数可采用寄存器、寄存器间接、直接、立即、寄存器基址加变址等寄存器基址加变址等5种寻址方式。种寻址方式。目的操作数可以采用寄存器、寄存器间接、直接等目的操作数可以采用寄存器、寄存器间接、直接等3种寻址方式。种寻址方式。一般操作是把源操作数传送到目的操作数,指令一般操作是把源操作数传送到目的操作数,指令执行后源操作数不变,目的操作数被修改为源操作执行后源操作数不变,目的操作数被修改为源操作数。数。若要求进行数据传送时,目的操作数不变,则若要求进行数据传送时,目的操作数不变,则可以用交换指令。可以用交换指令。数数据据传传送送类类指指令令不不影影响响标标志志位位C、AC、OV。对对于于P标志一般不加以说明。标志一般不加以说明。堆堆栈栈操操作作指指令令可可以以直直接接修修改改程程序序状状态态字字PSW,这这时时可以使某些标志位发生改变。可以使某些标志位发生改变。从从图图37中可以看出数据传送指令的特点有:中可以看出数据传送指令的特点有:可可以以进进行行直直接接地地址址到到直直接接地地址址的的数数据据传传送送,能能把把一一个个并并行行I/O口口中中的的内内容容传传送送到到片片内内RAM单单元元中中,而而不不必经过累加器或工作寄存器必经过累加器或工作寄存器Rn。用用R0和和R1寄寄存存器器间间址址访访问问片片外外数数据据存存储储器器256个个字字节节址址及及片片内内RAM中中的的任任一一单单元元。用用DPTR间间址址访访问问片片外全部外全部64KB的数据存储器或的数据存储器或I/O。累累加加器器A能能对对Rn寄寄存存器器寻寻址址;能能与与特特殊殊功功能能寄寄存存器器之之间间进进行行一一个个字字节节的的数数据据传传送送;能能对对片片内内RAM直直接接寻寻址址;能能与与片片内内RAM单单元元之之间间进进行行低低半半字字节节的的数数据据交换。交换。能用变址寻址方式访问程序存储器中的表格,能用变址寻址方式访问程序存储器中的表格,将程序存储器单元中的固定常数或表格字节内容传送将程序存储器单元中的固定常数或表格字节内容传送到累加器到累加器A中。中。主主要要用用于于80C51内内部部存存储储器器和和寄寄存存器器之之间间的的数数据据传送。传送。这类传送指令的格式为:这类传送指令的格式为:MOV目的字节,源字节目的字节,源字节功功能能:把把源源字字节节的的内内容容送送到到目目的的字字节节,而而源源字字节节的内容不变。的内容不变。操作属于拷贝性质。操作属于拷贝性质。3.2.1 3.2.1 内部内部8 8位数据传送指令位数据传送指令 源源操操作作数数:累累加加器器A,工工作作寄寄存存器器Rn(n0,7),直直接接地地址址direct、间间接接寻寻址址寄寄存存器器Ri(i0,1)和立即数)和立即数data等等5种。种。目目的的操操作作数数:累累加加器器A,工工作作寄寄存存器器Rn(n0,7),直直接接地地址址direct和和间间接接寻寻址址寄寄存存器器Ri(i i0,1)等)等4 4种。种。这这类类指指令令是是以以MOVMOV为为其其助助记记符符的的,若若以以目目的的操操作作数分类,可将内部数分类,可将内部8 8位数据传送指令分为位数据传送指令分为4 4组。组。以累加器以累加器A为目的操作数的指令组为目的操作数的指令组指指令令功功能能 寻址范围寻址范围机器码机器码MOVA,Rn;(A)(Rn)R0-R711101rrr8种操作码种操作码(E8EFH)MOVA,direct;(A)(direct)00-FFH11100101direct双字节双字节 MOVA,Ri;(A)(Ri)00-FFH 1110011r(E6 E7H)2种操作码种操作码MOVA,data;(A)(data)#00-#FFH01110100data双字节双字节传传送送指指令令是是以以累累加加器器A为为中中心心的的总总体体结结构构。绝绝大大部部分分传传送送操操作作均均需通过需通过A进行的。进行的。以工作寄存器以工作寄存器Rn为目的操作数的指令组为目的操作数的指令组MOVRn,A;(;(Rn)(A)MOVRn,direct;(;(Rn)(direct)MOVRn,data;(;(Rn)data把把源源操操作作数数的的内内容容送送入入当当前前工工作作寄寄存存器器区区的的R0R7中中的的某某一个寄存器。一个寄存器。以直接地址以直接地址direct为目的操作数的指令组为目的操作数的指令组MOVdirect,A;(direct)(A)MOVdirect,Rn;(direct)(Rn)MOVdirect,direct;(direct)(direct)MOV direct,Ri;(direct)(Ri)MOVdirect,data;(direct)data把源操作数的内容送入由直接地址指出的存储单元。把源操作数的内容送入由直接地址指出的存储单元。直直接接地地址址direct为为8位位直直接接地地址址,可可寻寻址址0255个个单单元元,对对80C51可可直直接接寻寻址址内内部部RAM0127个个地地址址单单元元和和128255地地址址的特殊功能寄存器。的特殊功能寄存器。以间接寻址寄存器以间接寻址寄存器RiRi为目的操作数的指令组为目的操作数的指令组 MOVRi,A;(Ri)(A)MOVRi,direct;(;(Ri)(direct)MOVRi,data;(;(Ri)data这这组组指指令令的的功功能能是是把把源源操操作作数数的的内内容容送送入入由由R0或或R1的的内内容容所指的内部所指的内部RAM中的存储单元。中的存储单元。Ri由由操操作作码码字字节节的的最最低低位位来来选选定定是是R0还还是是R1寄寄存存器器,间间址址是是以以Ri的的内内容容作作为为操操作作数数的的地地址址来来进进行行寻寻址的。址的。直直接接寻寻址址direct单单元元在在编编程程时时就就巳巳明明确确,而而间间接接寻寻址址单单元元是是在在程程序序进进行行中中明明确确的的,间间接接寻寻址址空空间间和和直直接寻址空间范围相同,均为接寻址空间范围相同,均为0255个单元地址。个单元地址。立立即即数数data为为一一常常数数,它它是是不不带带符符号号的的8位位二二进进制制数。数。MOVA,80H;表示把片内;表示把片内RAM中地扯为中地扯为80H单单 元元(即即P0口口)中的内容送中的内容送A。MOV80H,88H;这是一条;这是一条3字节指令,表示把立字节指令,表示把立即数即数88H送到片内送到片内RAM中的中的80H地址单元中去。地址单元中去。MOV80H,0E0H;这是一条;这是一条3字节指令表示把字节指令表示把E0H单元的内容送到单元的内容送到80H单元中去。这是片内数单元中去。这是片内数据存储单元中的据存储单元中的直接地址单元之间数据的直接地址单元之间数据的直接直接传送传送。MOVDPTR,data16;(;(DPTR)data16把把16位常数装入数据指针位常数装入数据指针DPTR。16位位常常数数在在指指令令的的第第二二、第第三三字字节节中中(第第二二字字节节为为高高位字节位字节DPH,第三字节为低位字节,第三字节为低位字节DPL)。)。例:执行指令例:执行指令MOVDPTR,1234H执行结果执行结果(DPH)12H,(,(DPL)34H3.2.2 163.2.2 16位数据传送指令位数据传送指令实现累加器实现累加器A与外部数据存储器或与外部数据存储器或I/O口之间传送一个字节口之间传送一个字节数据的指令。数据的指令。采采用用间间接接寻寻址址方方式式访访问问外外部部数数据据存存储储器器,有有Ri和和DPTR两两种间接寻址方式。种间接寻址方式。采采用用R0或或R1作作间间址址寄寄存存器器时时,可可寻寻址址256个个外外部部数数据据存存储储器器单单元元,8位位地地址址和和数数据据均均由由P0口口分分时时输输入入和和输输出出。这这时时若若要要访访问问大大于于256个个单单元元的的片片外外RAM时时,可可选选用用任任何何其其它它输输出出口口线线来来输输出高出高8位的地址(一般选用位的地址(一般选用P2口输出高口输出高8位地址)。位地址)。采采用用16位位DPTR作作间间址址可可寻寻址址整整个个64KB片片外外数数据据存存贮贮空空间间,低低8位(位(DPL)由)由P0口进行分时使用,高口进行分时使用,高8位(位(DPH)由)由P2口输出。口输出。3.2.33.2.3外部数据的传送指令组外部数据的传送指令组外部数据存储器或外部数据存储器或I/O内容送累加器内容送累加器AMOVXA,RiMOVXA,DPTR说说明明:指指令令执执行行时时,在在P3.7引引脚脚上上输输出出RD有有效效信信号,可用作外部数据存储器或号,可用作外部数据存储器或I/O的读选通信号。的读选通信号。P0口口分分时时输输出出由由Ri或或DPL指指定定的的低低8位位地地址址信信息息和和输输入入累累加加器器中中的的数数据据信信息息,P2口口则则输输出出DPH指指定定的的高高8位位地地址信息。址信息。累加器累加器A内容送外部数据存储器或内容送外部数据存储器或I/OMOVXRi,AMOVXDPTR,A说说明明:该该组组指指令令执执行行时时,在在P3.6引引脚脚上上输输出出WR有有效信号,可以用作外部数据存储器或效信号,可以用作外部数据存储器或I/O的写选通信号。的写选通信号。P0口口分分时时输输出出由由Ri或或DPL指指定定的的低低8位位地地址址信信息息和和累累加加器器中中输输出出的的数数据据信信息息,P2口口则则输输出出DPH指指定定的的高高8位位地址信息。地址信息。例例1:设设工工作作寄寄存存器器R0的的内内容容为为12H,R1的的内内容容为为34H,片外,片外RAM34H单元的内容为单元的内容为56H。执行指令:。执行指令:MOVXA,R1;(;(34H)56HAMOVXR0,A;(;(A)片外片外12H单元中单元中执行结果:片外执行结果:片外RAM的(的(34H)56H,(12H)56H。例例2:某某应应用用系系统统外外扩扩了了8KBRAM,要要求求把把内内部部RAM的的20H单元内容发送到外部单元内容发送到外部RAM的的800H单元中。单元中。MOV DPTR,#800H;外部数据存储器地址指针;外部数据存储器地址指针MOV R0,#20H;内部数据存储器地址指针;内部数据存储器地址指针MOV A,R0;取内部;取内部RAM20H单元内容单元内容MOVXDPTR,A;送外部;送外部RAM800H单元单元MOVCA,APCMOVCA,A+DPTR功能功能 从程序存储器中读取数据从程序存储器中读取数据(如表格、常数等如表格、常数等)。累累加加器器A为为变变址址寄寄存存器器,而而PC、DPTR为为基基址址寄寄存存器器。DPTR为为基基址址寄寄存存器器时时,允允许许数数表表存存放放在在程程序序存存储储器器的的任任意单元,称为远程查表;意单元,称为远程查表;PC为基址寄存器时,数表只能放在当前为基址寄存器时,数表只能放在当前PC往下的往下的255个单个单元中,称为近程查表。编程时需计算元中,称为近程查表。编程时需计算A值与数表首址的偏移量。值与数表首址的偏移量。3.2.4 程序存储器数据传送指令程序存储器数据传送指令(或称查表指令或称查表指令)例例3:求平方数:求平方数(远程查表法远程查表法)MOVDPTR,#TABLE;指向表首址;指向表首址MOVCA,A+DPTR;查表得到平方数;查表得到平方数MOV20H,A;存平方数;存平方数HERE:SJMPHERETABLE DB00H,01H,04H,09H;平方表;平方表0292DB16H,25H,36HDB49H,64H,81H例例4:求平方数:求平方数(近程查表近程查表)ADDA,#rel;修正偏移量;修正偏移量MOVCA,A+PC;查表得到平方数;查表得到平方数MOV20H,A;存平方数;存平方数HERE SJMPHERETABLE DB00H,01H,04H,09H,16H;平方表;平方表0292DB25H,36H,49H,64H,81H注注 rel=TABLE(查表指令地址查表指令地址1);MOVC指令为单字节。指令为单字节。字节交换指令字节交换指令XCH组组 XCHA,Rn;(A)(Rn)、direct、RiXCHA,directXCHA,Ri功能功能 将累加器将累加器A与源操作数的字节内容互换。与源操作数的字节内容互换。例:设(例:设(R0)30H,(,(A)3FH,片内(,片内(30H)BBH。执行指令执行指令XCHA,R0执行结果执行结果(A)=BBH,(,(30H)3FH。3.2.5 数据交换指令数据交换指令.半字节交换指令组半字节交换指令组 XCHDA,Ri功功能能 将将Ri间间接接寻寻址址单单元元的的低低4位位内内容容与与累累加加器器A的的低低4位位内内容容互换,而它们的高互换,而它们的高4位内容均不变。位内容均不变。例例:设设(R0)20H,(A)36H(00110110B),内内部部RAM中中(20H)75H(0111010lB)。)。执行指令执行指令 XCHDA,R0结果为结果为(20H)01110110B76H,(,(A)00110101B35H。SWAPA功功能能 将将累累加加器器A的的高高、低低半半字字节节交交换换,该该操操作作也也可可看看作作是是4位循环指令。见位循环指令。见图图38。例:设(例:设(A)36H(00110110B)执行执行SWAPA指令指令执行结果为(执行结果为(A)63H(01100011B)。)。XCHD和和SWAP指令主要用于实现十六进制数或指令主要用于实现十六进制数或BCD码码的数位交换。的数位交换。3.2.6 堆栈操作指令组堆栈操作指令组PUSHdirectPOPdirect入入栈栈(PUSH)指指令令又又称称“压压栈栈”操操作作。指指令令执执行行后后SP1指指向向栈栈顶顶上上一一个个空空单单元元,将将直直接接地地址址direct单单元元内容送入内容送入SP所指示的堆栈单元。所指示的堆栈单元。出出栈栈(POP)指指令令又又称称“弹弹出出”操操作作,由由SP所所寻寻址址的的片片内内RAM中中栈栈顶顶的的内内容容(SP)送送入入直直接接寻寻址址单单元元direct中中,然然后后执执行行(SP)一一1并并送送入入SP。例例:中中断断响响应应时时(SP)30H,DPTR的的内内容容为为0123H,执执行入栈指令:行入栈指令:PUSHDPL;DPL内容入栈内容入栈PUSHDPH;DPH内容入栈。内容入栈。执执行行结结果果:第第1条条指指令令(SP)131H(SP),(DPL)23H(31H)第第 2条条 指指 令令(SP)1 32H(SP),(DPH)01H(32H)片片内内RAM中中,(31H)23H,(32H)01H,(SP)32H。例:设(例:设(SP)32H,片内,片内RAM的的30H32H单元中的内容分单元中的内容分别为别为20H,23H,01H,执行下列指令的结果怎样?,执行下列指令的结果怎样?POPDPH;(;(SP)()(32H)01HDPH(SP)132H131HSPPOPDPL;(;(SP)()(31H)23HDPL(SP)131H130HSP例例5:检查传送结果:检查传送结果已知内部已知内部RAM(10H)=00H,(30H)=40H,(40H)=10H,P1口为口为11001010B,分析指令执行后,各单元内容。,分析指令执行后,各单元内容。MOVR0,#30H;R0=30HMOVA,R0;A=40HMOVR1,A;R1=40HMOVB,R1;B=10HMOVR1,P1;(40H)=11001010BMOVP2,P1;P1=P2=11001010BMOV10H,#20H;(10H)=20H执执行行结结果果:(10H)=20H,(30H)=40H,(40H)=CAH,P1=P2=CAH,A=40H,B=10H,R0=30H,R1=40H例例6:将将4位位BCD码倒序码倒序设内部数据存储器设内部数据存储器2AH、2BH单元连续存放有单元连续存放有4位位BCD码数符,试编一程序把码数符,试编一程序把4位位BCD码数符倒序排列。码数符倒序排列。2AH2BH2AH2BHa3a2a1a0a0a1a2a3MOVR0,#2AHMOVR1,#2BHMOVA,R0;2AH单元内容送单元内容送ASWAPA;A的高的高4位与低位与低4位交换位交换(a2a3)MOVR0,AMOVA,R1;2BH单元内容送单元内容送ASWAPA;A的高的高4位与低位与低4位交换位交换(a0a1)XCHA,R0;2AH与与2BH单元内容交换单元内容交换MOVR1,AHERE:SJMPHERE3.3 3.3 算术运算类指令算术运算类指令 通过算术逻辑运算单元通过算术逻辑运算单元ALU进行数据运算处理。进行数据运算处理。它它包包括括加加、减减、乘乘、除除四四则则运运算算,还还有有带带借借位位减减法法、比比较较指指令令。加加法法类类指指令令包包括括加加法法、带带进进位位的的加加法法、加加1以以及及二二一一十十进进制制调调整。整。ALU仅仅执执行行无无符符号号二二进进制制整整数数的的算算术术运运算算。对对于于带带符符号号数数则则要要进行其它处理。进行其它处理。助助记记符符为为:ADD、ADDC、INC、DA、SUBB、DEC、MUL、DIV等等8种。种。除了加除了加1和减和减1指令之外,算术运算结果将使进位标志指令之外,算术运算结果将使进位标志(CY)、半进位标志()、半进位标志(AC)、溢出标志()、溢出标志(OV)置位或复位。)置位或复位。ADDA,Rn;(;(A)()(Rn)(A)ADDA,direct;(;(A)()(direct)(A)ADD A,Ri ;(A)(Ri)(A)ADDA,data;(;(A)data(A)指令的源操作数为指令的源操作数为Rn、direct、Ri或立即数,而目的或立即数,而目的操作数为累加器操作数为累加器A中的内容。中的内容。功能:将工作寄存器功能:将工作寄存器Rn、片内、片内RAM单元中的内容、间单元中的内容、间接地址存储器中的接地址存储器中的8位无符号二进制数及立即数与累加器位无符号二进制数及立即数与累加器A中的中的内容相加,相加的结果仍存放在内容相加,相加的结果仍存放在A中。中。3.3.1 3.3.1 加法指令加法指令这类指令将影响标志位这类指令将影响标志位AC、CY、OV、P。当和的第当和的第3位有进位时,将位有进位时,将AC标志置位,否则为标志置位,否则为0。当和的第当和的第7位有进位时,将位有进位时,将CY标志置位,否则为标志置位,否则为0。对于带符号数运算对于带符号数运算,当和的第当和的第7位与第位与第6位中有一位进位中有一位进位而另一位不产生进位时,溢出标志位而另一位不产生进位时,溢出标志OV置位置位,否则为否则为0。(OV)1表示两个正数相加表示两个正数相加,和为负数;或两个负数和为负数;或两个负数相加而和为正数的错误结果。相加而和为正数的错误结果。例例:设(设(A)C3H,(,(R0)=AAH。执行指令:执行指令:ADDA,R011000011B+10101010B01101101B执执行行结结果果:(A)6DH,(CY)1,(OV)1,(AC)0,P=1。ADDCA,Rn;(;(A)(A)()(Rn)()(CY)ADDC A,direct ;(A)(A)(direct)(CY)ADDCA,Ri;(;(A)(A)()(Ri)()(CY)ADDCA,data;(;(A)(A)data(CY)功功能能:将将工工作作寄寄存存器器Rn、片片内内RAM单单元元中中的的内内容容、间间接接地地址址存存储储器器中中的的8位位二二进进制制数数及及立立即即数数与与累累加加器器A的的内内容容和和当当前前进进位标志位标志CY

    注意事项

    本文(单片微型计算机原理与接口技术 第二版 第3章___80C51单片微机的指系统06[1].12[....ppt)为本站会员(hyn****60)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开