- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.逻辑异或运算指令 XRL A,Rn ; (A)←(A)⊕(Rn) XRL A,direct; (A)←(A)⊕(direct) XRL A,@Ri ; (A)←(A)⊕((Ri)) XRL A,#data ; (A)←(A)⊕data XRL direct,A; (direct)←(A)⊕(direct) XRL direct,#data;(direct)←(direct)⊕data 与1相异或,使被修改数相应位取反,与0相异或,使被修改数相应位保持原值不变;本指令可判断两个数是否相等,若相等,则异或结果为全“0”;否则不相等。 3.6 控制转移类指令 1.无条件转移指令 是指当程序执行到该指令时,无条件转移到指令所提供地址处执行。无条件转移指令共有4条,包括长转移指令、短转移指令、绝对转移指令和散转指令。 (1)长转移指令 LJMP addr16 ;(PC)←addr16 该指令执行后将16位地址(addr16)传送给PC,从而实现程序转移到新的地址开始运行,该指令可实现64KB的范围内任意转移。该指令不影响标志位。 (2)绝对转移指令 AJMP addr11;(PC)←(PC)+2,(PC10~0)← addr11 由指令提供低11位地址去替换PC的低11位内容,组成11位转移目标地址,使程序无条件转向同一2KB存储空间目的地址执行。本指令不影响标志位。 (3)短转移指令 SJMP rel;(PC)←(PC)+2,(PC)←(PC) +rel 指令中rel是一个有符号数偏移量,其范围为-128~+127,以补码形式给出。若rel是正数,则向前转移;若rel是负数,则向后转移。 1)一条带有FEH偏移量的SJMP指令,将实现无限循环。这是因为FEH是-2的补码,目的地址=PC+2-2=PC,结果转向自己,无限循环,一般在程序用SJMP $来表示SJMP 0FEH。 2)该指令中寻址方式称相对寻址方式。 存储器 80H –128 rel +127 PC PC+1 PC+2 … … (4)散转指令 JMP @A+DPTR;(PC)←(A)+(DPTR) PC DPTR (A)+(DPTR)→PC 256B JMP @A+DPTR … … … 该指令执行时,把累加器A中的8位无符号数与DPTR中16位数相加,其中装入程序计数器PC,控制程序转到目的地址执行程序。整个指令的执行过程中,不改变累加器A和DPTR的内容。 2.条件转移指令 条件转移指令是当满足给定的条件时,程序转移到目的地址去执行;条件不满足则顺序执行下一条指令。条件转移指令分为累加器A判零转移指令、比较转移指令和循环指令。 (1)累加器A判零转移指令 JZ rel ;(PC) ←(PC) +2 当 (A) = 0, (PC) = (PC) + rel,即转移 当 (A) ≠ 0, 则程序顺序执行 JNZ rel ;(PC) ←(PC) +2 当 (A) ≠ 0, (PC) = (PC) + rel,即转移 当 (A) = 0, 则程序顺序执行 在MCS - 51 中没有专门的比较指令, 但提供了下面 4 条比较不相等转移指令: CJNE A, direct, rel CJNE A, #data, rel CJNE Rn, #data, rel CJNE @Ri, #data, rel 这组指令的功能是: 比较前面两个操作数的大小, 如果它们的值不相等则转移。转移地址的计算方法与上述两条指令相同。如果第一个操作数(无符号整数)小于第二个操作数, 则进位标志Cy置“1”, 否则清“0”, 但不影响任何操作数的内容。 (2) 比较转移指令 (3) 循环控制转移指令 DJNZ Rn, rel ;(PC) ←(PC)+2, (Rn)←(Rn)-1 当(Rn)≠0时, (PC) ←(PC) +rel; 当(Rn)=0时, 程序顺序执行。 DJNZ direct,rel;(PC)←(PC)+3,(direct)←(direct)-1 当(direct)≠0时, (PC) ←(PC) +rel; 当(direct)=0时, 程序顺序执行。 执行本指令时,将第一个操作数减1后判断结果是否为0,若为0,则终止循环程序段的执行,程序往下顺序执行;若不
文档评论(0)