2-4控制转移类指令与位操作指令(1).ppt

2-4控制转移类指令与位操作指令(1).ppt

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
任务2-4 控制转移类指令与位操作指令(1) 任务2-4 控制转移类指令与位操作指令子任务2-4-1 单灯闪烁5次1、任务要求:用单片机控制一个LED灯的亮灭,反复五次后保持常亮状态。2、相关知识:1)转移类指令到上一次课为止,我们所学的单片机指令都是顺序执行指令,也就是说,之前我们编制的所有单片机汇编程序都是按照先后顺序一条一条地逐行执行的。今天我们要给大家介绍转移类指令,有了转移类指令,单片机执行程序时,就可以在该类指令的作用下,根据我们的需要使程序执行到某一行指令时跳至其他行。(1)无条件转移类指令该类指令肯定会使单片机发生跳转,不需要任何条件①AJMP addr11 ;短转移类指令②LJMP addr16 ;长转移类指令③SJMP rel ;相对转移类指令 任务2-4 控制转移类指令与位操作指令区别:①AJMP指令能转移的范围只能在2KB范围之内(0000H~07FFH、0800H~0FFFH…),双字节指令;②LJMP指令能转移的范围能达到64KB(0000H~FFFFH),即整个程序存储器寻址空间,三字节指令;③SJMP指令能转移的范围只有256B(以当前地址为基点,-128~+127),双字节指令。例如:① AJMP LAB MOV P2,#01HLAB:MOV P2,#03H② LJMP LAB MOV P2,#01HLAB:MOV P2,#03H③ SJMP LAB MOV P2,#01HLAB:MOV P2,#03H 任务2-4 控制转移类指令与位操作指令④JMP @A+DPTR ;间接转移指令类似于查表指令MOVC A,@A+DPTR,指令将由基址(DPTR的内容)加上偏移量(A的内容)后的地址作为程序转移的地址。例如:MOV DPTR,#TAB ;传递表头(基址,或者说第一条分支地址) MOV A,R0 ;将要执行分支的序号传递给A MOV B,#2 MUL AB ;因为AJMP为双字节指令,因此偏移量必须是2的倍数 JMP A,@A+DPTR ;转移TAB: AJMP S0 ;分支0 AJMP S1 ;分支1 AJMP S2 ;分支2 …思考:如果分支0、1、2…所用的指令改为LJMP,则“MOV B,#2”应该如何修改? 任务2-4 控制转移类指令与位操作指令(2)条件转移类指令①判断A内容是否为0转移指令JZ rel ;若(A)=0,则转移,否则顺序执行;JNZ rel ;若(A)≠0,则转移,否则顺序执行;例如:MOV A,#0 MOV R0,#0 JZ LAB2LAB1: MOV R0,#0FFHLAB2: AJMP $JNZ类似,不再举例。②比较转移指令(会影响到C位,在此不作展开)CJNE A,#data,rel ;若(A)=data,则顺序执行,否则转移CJNE A,direct,rel ;若(A)=(direct),则顺序执行,否则转移CJNE Rn,#data,rel ;若(Rn)=data,则顺序执行,否则转移CJNE @Ri,#data,rel ;若((Ri))=data,,则顺序执行,否则转移 任务2-4 控制转移类指令与位操作指令例如:MOV A,#0 CJNE A,#0,LAB1 MOV R0,#0 AJMP LAB2LAB1: MOV R0,#0FFHLAB2: AJMP $其余三条指令类似,不再举例。③循环转移指令DJNZ Rn,rel ;(Rn)←(Rn)-1,若(Rn)≠0则转移,否则顺序执行DJNZ direct,rel ;(direct)←(direct)-1,若(Rn)≠0则转移,否则 ;顺序执行 任务2-4 控制转移类指令与位操作指令(3)调用与返回指令回忆C语言编写程序时,对于反复使用的模块,为了让程序更简洁,我们往往将其编制为函数,在需要使用的时候进行调用。汇编语言中也有类似功能,对于反复使用的模块,我们可以将其编制为子程序,在需要使用的时候进行调用。①调用指令LCALL ;长调用指令ACALL ;短调用指令②返回指令RET ;返回指令 任务2-4 控制转移类指令与位操作指令③例如:;主程序 MOV P1,#0 ACALL DELAY MOV P1,#0FFH AJMP $;子程序,实现延时功能DELAY: MOV R0,#0FFHLOOP1: MOV R1,#0FFH DJ

文档评论(0)

金华 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档