MCS系列单片机的指令系统.pptVIP

  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文档。上传文档
查看更多
MCS系列单片机的指令系统

CJNE @Ri ,# data ,rel ;若((Ri))=data ,则PC←(PC)+3, CY←0 若((Ri)) data,则PC←(PC)+3+rel,CY←0 若((Ri))data, 则PC←(PC)+3+rel,CY←1 在使用CJNE指令时应注意以下几点: (1) 比较条件转移指令都是三字节指令, PC当前值=PC+3(PC是该指令所在地址), 转移的目的地址=PC+3+rel。 (2) 比较操作实际就是作减法操作,只是不保存减法所得到的差而将结果反映在标志位CY上。 (3) CJNE指令将参与比较的两个操作数当作无符号数看待、处理并影响CY标志。因此CJNE指令不能直接用于有符号数大小的比较。 若进行两个有符号数大小的比较,则应依据符号位和CY位进行判别比较。 3.减1条件转移指令 DJNZ Rn ,rel ;Rn ←(Rn)-1 若(Rn) ≠ 0, 则转移,PC←(PC)+2+rel 若(Rn)=0, 按顺序执行,PC←(PC)+2 DJNZ direct ,rel ;direct ←(direct)-1 若(direct)≠0,则转移, PC←(PC)+3+rel 若(direct)=0,按顺序执行, PC←(PC)+3 第一条为二字节指令,第二条为三字节指令。 这两条指令对于构成循环程序十分有用,使用中可以指定任何一个工作寄存器或者内部RAM单元为计数器。对计数器赋以初值以后,就可以利用上述指令对计数器进行减1,不为零就进入循环操作,为零就结束循环,从而构成循环程序。 例3-21 试编写程序,将内部RAM以DATA为起始地址的10个单元中的数据求和,并将结果送入SUM单元。设和不大于255。 解:对一组连续存放的数据进行操作时,一般都采用间接寻址,使用INC指令修改地址,可使编程简单,利用减1条件转移指令很容易编成循环程序来完成10个数相加。 MOV R0,#DATA ;首地址送间址寄存器R0 MOV R7,#0AH ;计数器R7送入计数初值 CLR A ;累加器A作累加和,先清0 LP:ADD A,@R0 ;加一个数 INC R0 ;地址加1,指向下一地址单元 DJNZ R7,LP ;计数值减1不为零循环 MOV SUM,A ;累加和存入指定单元 SJMP $ ;结束 例3-22 将外部RAM的一个数据块传送到内部RAM,两者的首地址分别为DATA1和DATA2,遇到传送的数据为“$”字符,停止传送。 MOV DPTR ,#DATA1 ;外部数据块首地址送DPTR MOV R1 ,#DATA2 ;内部数据块首地址送R1 LP:MOVX A ,@DPTR ;从外部RAM取数送入A CJNE A,#24H,LP1 ;与 $的ASCⅡ码比较,不相 等转LP1: SJMP LP2 ;相等,转LP2 LP1:MOV @R1 ,A ;不是 $ 字符,执行传送 INC DPTR ;修改源地址指针 INC R1 ;修改目的地址指针 SJMP LP ;转传送下一个数据 LP2: SJMP $ ;结束 以上条件转移指令都是相对转移指令,转移的范围有限;若要在大范围内实现条件转移,可将条件转移指令和长转移指令LJMP结合起来加以实现。 例如,根据A和立即数80H比较的结果转移到标号NEXT1,其转移的距离已超过了256字节,则可用下述指令来实现: CJNE A,#80H,NEXT;不相等,则转移 ┇ ;相等,按顺序执行 SJMP NEXT2 ;处理完,跳到NEXT2 NEXT:LJMP NEXT1 ;长转移至NEXT1 CJNE与LJMP两条指令的结合,可以实现在64KB范 围内的条件转移。其中的SJMP NEXT2指令是在执 行完两数相等的处理后,转移到继续执行的位置,以 免也要去执行LJMP指令,

文档评论(0)

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

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

1亿VIP精品文档

相关文档