第3章80C51的指令系统.ppt

  1. 1、本文档共71页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

**3.5.2逻辑或【例】(A)=C3H,(R0)=55H,执行指令ORLA,R0后,(A)=D7H或操作常用于对某些关心位进行“置1”,不关心位保持不变**3.5.3逻辑异或【例】(A)=C3H,(R0)=AAH,执行指令XRLA,R0后,(A)=69H异或操作常用于对某些关心位进行“取反”,不关心位保持不变两个相等的数,异或结果为0,由此可以判断两数是否相等。**例:根据累加器A中4~0位的状态,用逻辑与、或指令控制P1口4~0位的状态,P1口的高3位保持不变。 ANLA,;屏蔽A的高3位 ANLP1,;保留P1的高3位 ORLP1,A;使P1.4~P1.0按A4~A0置位若上述程序执行前:(A)=B5H, (P1)=6AH,则执行程序后:(A)=15H, (P1)=75H。**3.5.4逻辑清0和取反3.5.5累加器循环移位3.6控制转移类指令(17条)**3.6.1无条件转移短跳转AJMPaddr11;PC←(PC)+2,PC10~0←addr11**长跳转LJMPaddr16;PC←addr16相对转移SJMPrel;PC←(PC)+2,PC←(PC)+rel目标地址rel对应范围为+127~-128。**ORG0000HLJMPMAIN ;相应机器代码0207FEORG07FEHMAIN:AJMPS1 ;相应机器代码0110ORG0810HS1:SJMP$ ;相应机器代码80FE,FEH为8位偏移地;址的补码,即-2举例:**【例】若“NEWADD”为地址1022H,PC的当前值为1000H。执行指令SJMPNEWADD后,程序将转向1022H处执行(rel=20H=1022H-1000H-2)。解析如下:**散转移JMP@A+DPTR;PC←(PC)+1,PC←(A)+(DPTR)可完成多条判跳指令的功能【例】功能:当(A)=00H时,程序将转到ROUT0处执行;当(A)=02H时,程序将转到ROUT1处执行;……。MOVDPTR,#TABLEJMP@A+DPTRTABLE:AJMPROUT0AJMPROUT1AJMPROUT2AJMPROUT3**3.6.2条件转移累加器判0转移比较不等转移**减1不为0转移举例:延时程序**DELAY:MOVR5,#01H;1TCYD1:MOVR6,#0H;1TCYD2:MOVR7,#0H;1TCYD3:DJNZR7,D3;2TCYDJNZR6,D2;2TCY DJNZR5,D1;2TCY RET;2TCY设R5、R6、R7初值为x、y、z,系统时钟为12MHz,则延时时间为机器周期**【例】有一段程序如下,该程序执行后,累加器A中内容为多少?MOV23H,#0AHCLRALOOPX:ADDA,23HDJNZ23H,LOOPXSJMP$(A)=10+9+8+7+6+5+4+3+2+1=37H**3.6.3调用与返回调用指令执行时将返回地址入栈SP应设为合适值(默认值07H)**【例3】若(SP)=07H,标号“XADD”表示的实际地址为0345H,PC的当前值为0123H。执行指令ACALLXADD后:返回地址为:(PC)+2=0125H。其低8位的25H压入堆栈的08H单元,其高8位的01H压入堆栈的09H单元(低地址对应于低字节)。(PC)=0345H,程序转向目标地址0345H处执行。**返回RETI专用于中断服务程序返回,它具有

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档