8051单片机常用指令..docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8051单片机常用指令.

3.2.1数据传送与交换类指令 共有28条指令,包括以A,Rn,DPTR,直接地址单元,间接地址单元为目的的操作数的指令;访问外部RAM的指令;读程序存储器的指 9.堆栈操作 3.2 分类指令 在介绍各条分类指令之前,将指令中的操作数及注释中的符号说明如下。 Rn:当前指定的工作寄存器组中的Ro-R7(其中n=0,1,2,…,7)。 Ri:当前指定的工作寄存器组中的RO,R1(其中i=0,1)。 (Ri):Ri间址寻址指定的地址单元。 ((Ri)):Ri间址寻址指定地址单元中的内容。 dir:8位直接字节地址(在片内RAM和SFR存储空间中)。 #data8:8位立即数。 #datal6:16位立即数。 addrl6:16位地址值。 addrll:11位地址值。 bit:位地址(在位地址空间中)。 rel:相对偏移量(一字节补码数)。 下面介绍各条分类指令的主要功能和操作,详细的指令操作说明及机器码形式可见附录。 3.2.1数据传送与交换类指令 共有28条指令,包括以A,Rn,DPTR,直接地址单元,间接地址单元为目的的操作数的指令;访问外部RAM的指令;读程序存储器的指 令;数据交换指令以及准栈操作指令。 9.堆栈操作 PUSH dir ;SP十1-6P,(dir)一(SP) POP dir ;((SP))一dir,SP-1--P , 例1 SP=07H,(35H)=55H,指令PUSH 35H执行后,55H送入08H地址单元,SP= 08H。 例2 SP=13H,(13H)= 1FH,指令POP 25H执行后,1FH压入25H地址单元,SP此时为12H。 综合例 把片内RAM中50H地址单元中的内容与40H地址单元中的内容互换。 方法一(直接地址传送法): MOV A ,50H 数据传送与交换类指令是各类指令中数量最多、使用最频繁的一类指令,编程时应能十分熟练地灵活运用 3.2.2算术运算类指令 共有24条指令,主要包括加、减、乘、除、增量、减量和十进制调整等指令。其中,大多数指令都同时以A为源操作数之一和目的操作数。 1. 加 说明:借位位来自程序状态字PSW中的进位位C,只是在作减法运算时,被用作借位位。 例 A=38H,R1=20H,(20H)=23H,C=1 指令SUBB A,@R1执行后,A=14H。 4.乘法 MUL AB ;A×B-BA 说明:本指令实现8位无符号乘法。A,B中各放一个8位乘数,指令执行后,16位积的高位在B中,低位在A中。 例 A=50H,B=40H,指令MUL AB执行后,A=00H,B=32H 5.除法 DIV AB ;A÷ B-商在A中,余数在B中 说明:本指令实现8位无符号除法。A放被除数,B放除数,指令执行后,A中为商,B中为 余数。若除数B=00H,则指令执行后,溢出标志OV=1,且A,B内容不变。 例1 A=28H,B=12H,指令DIV AB执行后,A=02H,B=04H。 例2 A=08H,B=09H,指令DIV AB执行后,A=00H,B=08H。 综合例1 把在R4和R5中的两字节数取补(高位在R4中) CLR C MOV A , R5 CPL A INC A MoV R5, A MoV A, R4 CPL A ADDC A, #00H MOV R4,A SJMP $ 综合例2 把R7中的无符号数扩大10D倍(设原数小于25D) MOV A ,R7 MOV B ,#0AH MUL AB MoV R7, A SJMP $ 综合例3 把R1R0和R3R2中的2个4位跃D数相加,结果送入R5R4中,如有进位则存于进位位C中。 CLR C MOV A,R0 ADD A,R2 DA A MOV R4,A MOV A,R1 ADDC A,R3 DA A MOV R5,A SjMP $ 在MCS-51系列单片机的算术运算类指令中,乘除法指令是许多8位微处理器和一些8位单片机所没有的,执行时间为4个机器周期。这种指令对编制比较复杂的运算程序,例如,比例-积分-微分(PID)运算、浮点运算、多字节数乘除运算等是经常要用到的。 3.2.3逻辑运算与循环类指令 共有24条指令。逻辑运算指令主要包括逻辑与、或、异或、求反和清零;循环指令则都是对A的大循环操作,包括有左、右方向以及带与不带进位位的不同循环方式。 例A=16H,指令RR A执行后,A=0BH。 综合例 把R2R3中的16位补码数(高位在R2中)右移一位,并不改变符号。 MOV A ,R2 MOV C ,ACC.7 ;把符号位存入进位位C RRC A MOV R2, A MOV A, R3 RRC A MOV R3 , A SJMP $ 3.2.4子程序调用与转移类指令 共有14条指令。子

文档评论(0)

gangshou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档