循环指令举例.pptVIP

循环指令举例.ppt

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

控制转移指令—循环转移指令举例 编程:把外部RAM中的2000H~2050H单元内容送至外部RAM的30H~80H单元 控制转移指令—块操作 块操作步骤: 1. 确定块的寻址寄存器 2. 确定循环变量和循环次数 3. 确定块的访问方式(MOV、MOVX、MOVC) 4. 对寻址寄存器和循环变量初始化 5. 编写循环框架、递增(递减)寻址寄存器值 6. 确定循环体内的操作 控制转移指令—块操作步骤 1. 确定块的寻址寄存器 控制转移指令—块操作步骤 2. 确定循环变量和循环次数 控制转移指令—块操作步骤 3. 确定块的访问方式(MOV、MOVX、MOVC) 控制转移指令—块操作步骤 4. 对寻址寄存器和循环变量初始化 控制转移指令—块操作步骤 5. 编写循环框架、递增(递减)寻址寄存器值 控制转移指令—块操作举例 举例:把内部RAM的20H~0FFH清空(置成0) 控制转移指令—块操作举例 编程:把内部RAM的20H开始的40个单元送到外部RAM的30H开始的单元 控制转移指令—块操作举例 编程:把内部RAM的30H~7FH单元分别和外部RAM的50H~9FH单元相加送入外部RAM的1030H~107FH单元 控制转移指令—块操作举例 编程:把外部RAM中从8000H开使的100个字节送至外部RAM的8100H开始的单元中去。 控制转移指令—块操作举例 编程:把外部RAM中从8000H开使的100个字节送至外部RAM的8100H开始的单元中去。 控制转移指令—比较转移指令 CJNE A,Direct, Label1; 1)若A≠(direct)则跳至Label1处,否则顺序执行 2)若A(direct)时Cy置1 3)若A(direct)时Cy置0 CJNE A, #data, Label2 CJNE Rn, #data, Label3 CJNE @Ri, #data, Label4 控制转移指令—比较转移指令举例 编程:把30H单元减去31H单元的绝对值送入32H单元中。 控制转移指令—比较转移指令举例2 编程:把内部RAM的20H~50H清空(置成0),用CJNE实现 控制转移指令—比较转移指令举例3 编程:把在ROM中300H~3FFH单元中最大的数找出来存放在内部RAM的30H单元,遇零则停止。 子程序调用指令 ACALL LCALL 子程序返回指令 RET RETI 空指令 NOP 子程序调用指令—LCALL 程序设计举例—算术、逻辑运算 编程:将连续存放在外部数据存贮器1000H 开始的10个无符号数求和,结果为双字节,存放在1100H(低位),1101H(高位)中。 程序设计举例 3.17 程序设计举例—算术、逻辑运算 T20ms: PUSH 0H ;2 PUSH 1H ;2 MOV 1H,#X ;2 TML0: MOV 0H,#Y ;2 TML1: DJNZ 0H,TML1 ;2 DJNZ 1H,TML0 ;2 POP 1H ;2 POP 0H ;2 RET ;2 程序设计举例—算术、逻辑运算 (2Y+4)*X+12 = 20000 近似为 (2Y+4)*X =20000 (2Y+4)*X =200*100 X=100 2Y+4=200 X=100 Y=98 程序设计举例 DELAY1S: MOV R2,#50 L1: LCALL T20ms DJNZ R2, L1 RET 程序设计举例 4.14 程序设计举例 4.18 控制转移指令—块操作举例 KeilC简介 LENGTH EQU 30H BLOCK1 EQU 40H BLOCK2 EQU 50H ORG 0000H SJMP MAIN ORG 0030H MAIN: MOV R2,LENGTH MOV R0,#BLOCK1 MOV R1,#BLOCK2 CLR C LOOP: MOV A,@R0 ADDC A,@R1 DA A MOV @R0,A INC R0 INC R1 DJNZ R2,LOOP CLR A MOV ACC.0,C MOV @R0,A FINISH: SJMP

文档评论(0)

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

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

1亿VIP精品文档

相关文档