09 分支程序设计 循环程序设计.ppt

上传人:s****8 文档编号:68598722 上传时间:2022-12-29 格式:PPT 页数:18 大小:696.50KB
返回 下载 相关 举报
09 分支程序设计 循环程序设计.ppt_第1页
第1页 / 共18页
09 分支程序设计 循环程序设计.ppt_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《09 分支程序设计 循环程序设计.ppt》由会员分享,可在线阅读,更多相关《09 分支程序设计 循环程序设计.ppt(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、4.14.1程序设计步骤程序设计步骤4.24.2简单程序设计简单程序设计4.34.3分支程序设计分支程序设计4.44.4散转程序设计散转程序设计4.54.5查表程序设计查表程序设计第四章汇编语言程序设计第四章汇编语言程序设计4.6 I/04.6 I/0口应用实例口应用实例(1)明确要求和要达到的目的明确要求和要达到的目的(2)确定解决问题的计算方法和步骤确定解决问题的计算方法和步骤(3)画出流程图画出流程图(4)按流程图编写程序按流程图编写程序(5)上机汇编、调试、修改及最后确定源程序上机汇编、调试、修改及最后确定源程序 程序是计算机语句的有序集合,当用计算机求解某些问程序是计算机语句的有序集

2、合,当用计算机求解某些问题时需要编制程序。汇编语言程序设计步骤归纳如下:题时需要编制程序。汇编语言程序设计步骤归纳如下:4.1程序设计步骤程序设计步骤4.2简单程序设计简单程序设计 简单程序又称顺序程序。是指按顺序依次执行的程序。顺序简单程序又称顺序程序。是指按顺序依次执行的程序。顺序程序结构虽然比较简单,但也能完成一定的功能任务,是构成复程序结构虽然比较简单,但也能完成一定的功能任务,是构成复杂程序的基础。杂程序的基础。例:课本例:课本P78例例41,例,例42例例41 两个两个8位的无符号数相加和是位的无符号数相加和是8位。位。设:内部设:内部RAM40H、41H单元中分别存放单元中分别存

3、放N1,N2,结果送入,结果送入42H单元。程序如下:单元。程序如下:AD1:MOV R0,#40H ;设设R0为数据指为数据指 MOV A,R0 ;取;取N1 INC R0 ;修改指针;修改指针 ADD A,R0 ;N1+N2 INC R0 MOV R0,A ;存结果;存结果 RET例例4-1MOV A,40HADD A,41HMOV 42H,ARET例例4-2:将两个半字节数合并成一个一字节数将两个半字节数合并成一个一字节数 设:内部设:内部RAM40H,41H单元中分别存放着单元中分别存放着8位二进制数。位二进制数。要求取出两个单元中的低半字节、合并成一个字节后,存要求取出两个单元中的低

4、半字节、合并成一个字节后,存42H单元。单元。MOV R1,#40H MOV A,R1 ANL A,#0FH ;取第一个半字节;取第一个半字节 SWAP A INC R1 XCH A,R1 ;取第二字节;取第二字节(既取出数,又保存了中间结果既取出数,又保存了中间结果)ANL A,#0FH ;取第二个半字节;取第二个半字节 ORL A,R1 ;拼字;拼字 INC R1 MOV R1,A ;存放结果;存放结果 RETSTART:例:设有两个例:设有两个4位位BCD码,分别存放在码,分别存放在23H、22H和和33H、32H单元中,求它们的和,并送入单元中,求它们的和,并送入43H、42H单元中去

5、。单元中去。(低位在低低位在低字节,高位在高字节字节,高位在高字节)MOV A,22HADD A,32HDA AMOV 42H,AMOV A,23HADDC A,33HDA AMOV 43H,AMOV A,22HADD A,32HMOV 42H,AMOV A,23HADD A,33HMOV 43H,A第3章 MCS-51单片机指令系统和汇编语言程序示例例例 求多项式求多项式ya2 b解解:设设a放在放在R2中,中,b在在R3中,结果放入中,结果放入R6(高高8位位)和和R7(低低8位位)MOV A,R2MOV B,AMUL ABCLR CSUBB A,R3MOV R7,A ;结果低结果低8位送

6、位送R7MOV A,BSUBB A,#00H;高高8位减进位位位减进位位MOV R6,A4.2 分支程序设计分支程序设计 根据不同条件转向不同的处理程序,这种结构的程序称为分根据不同条件转向不同的处理程序,这种结构的程序称为分支程序。支程序。5151指令系统中的指令系统中的条件转移指令条件转移指令、比较转移指令比较转移指令和和位转移位转移指令指令,可以实现分支程序。,可以实现分支程序。SJMP(Short Jump)短转移;短转移;AJMP(Absolute Jump)绝对转移;绝对转移;LJMP(Long Jump)长转移;长转移;CJNE(Compare Jump if Not Equal

7、)比较不相等则转移;比较不相等则转移;DJNZ(Decrement Jump if Not Zero)减后减后不为则转移;不为则转移;JZ(Jump if Zero)结果为结果为则转移;则转移;JNZ(Jump if Not Zero)结果不为则转移;结果不为则转移;JC(Jump if the Carry flag is set)有进位则转移;有进位则转移;JNC(Jump if Not Carry)无进无进位则转移;位则转移;JB(Jump if the Bit is set)位为则转移;位为则转移;JNB(Jump if the Bit is Not set)位为位为则转移;则转移;JB

8、C(Jump if the Bit is set and Clear the bit)位位为则转移,并为则转移,并清除该清除该位位;分支程序执行完后可以立即结束,也可以转到公共点结束,分支程序执行完后可以立即结束,也可以转到公共点结束,如下图所示如下图所示。例:例:统计自统计自P1口输入的字串中正数、负数、零的个数。口输入的字串中正数、负数、零的个数。设设R0、R1、R2三个工作寄存器分别为统计正数、负数、零三个工作寄存器分别为统计正数、负数、零的个数的计数器。完成本任务的流程框图如下所示。的个数的计数器。完成本任务的流程框图如下所示。START:CLR A MOV R0,A MOV R1,A

9、 MOV R2,A ENTER:MOV A,P1 ;自;自P1口取一个数口取一个数 JZ ZERO ;该数为该数为0,转,转ZERO JB ACC.7,NEG ;该数为负,转该数为负,转NEG INC R0 ;该数不为该数不为0、不为负,则必为正数,、不为负,则必为正数,R0内容加内容加1 SJMP ENTER ;循环自循环自P1口取数口取数 ZERO:INC R2 ;零计数器加零计数器加1 SJMP ENTER NEG:INC R1 ;负数计数器加负数计数器加1 SJMP ENTER第3章 MCS-51单片机指令系统和汇编语言程序示例例例4-3设设外部存储单元外部存储单元ST1和和ST2中存

10、放了两个不带符号的二中存放了两个不带符号的二进制数,找出其中大的数存入进制数,找出其中大的数存入ST3单元。单元。ORG 0000HSTART1:CLR C MOV DPTR,#ST1 MOVX A,DPTR MOV R2,A ;(ST1)放到放到R2 INC DPTR;指向指向ST2单元单元 MOVX A,DPTR;(ST2)放放A SUBB A,R2 ;(ST2)(ST1)JNC BIG1 ;(ST2)大大 XCH A,R2 ;(ST1)大大 BIG0:INC DPTR ;指向指向ST3单元单元 MOVX DPTR,ALL:SJMP ST2BIG1:MOVX A,DPTR SJMP BIG

11、0ST1:EQU 8040HST2:END 总结:总结:n在许多情况下,需要根据不同的条件转向不同的处理程序,在许多情况下,需要根据不同的条件转向不同的处理程序,这种结构的程序称为分支程序这种结构的程序称为分支程序n根据程序要求无条件或有条件改变程序执行执行的顺序,根据程序要求无条件或有条件改变程序执行执行的顺序,选择程序的流向选择程序的流向.(1)无条件分支程序无条件分支程序n程序设计者事先设计好的程序设计者事先设计好的nLJMP、AJMP、SJMP(2)有条件分支程序有条件分支程序n根据已经执行的程序对标志位、根据已经执行的程序对标志位、ACC或内部或内部RAM的某些位的影的某些位的影响结

12、果决定程序的流向响结果决定程序的流向nJZ/JNZ、CJNE、DJNZ、位控制转移类指令位控制转移类指令n特点特点:程序中含有转移类指令程序中含有转移类指令n关键关键:正确选用转移指令正确选用转移指令4.3 循环程序设计循环程序设计 循环程序一般由循环程序一般由4部分组成:初始化、循环体、循环控制和部分组成:初始化、循环体、循环控制和循环结束处理。循环结束处理。(1)初始化:初始化:设置循环次数计数器的初值、地址指针置初值、为循环设置循环次数计数器的初值、地址指针置初值、为循环变量赋初值。变量赋初值。(2)处理部分:处理部分:为反复执行的程序段,是循环程序的实体。为反复执行的程序段,是循环程序

13、的实体。(3)修改部分:修改部分:每执行一次循环体后,对指针做一次修改,使指针指每执行一次循环体后,对指针做一次修改,使指针指向下一数据位置,为进入下一轮处理做准备。向下一数据位置,为进入下一轮处理做准备。(4)控制部分:控制部分:根据循环次数计数器的状态或循环条件,检查循环是根据循环次数计数器的状态或循环条件,检查循环是否继续进行,若循环次数到或循环条件不满足,应控制推出循环,否继续进行,若循环次数到或循环条件不满足,应控制推出循环,否则继续循环。通常否则继续循环。通常2、3、4部分称为循环体。部分称为循环体。(5)结束部分:结束部分:它主要用来分析和存放程序的结果。它主要用来分析和存放程序

14、的结果。循环程序的结构一般有两种形式:循环程序的结构一般有两种形式:先进入处理部分,再控制循环,即至少执行一次循环体,如下图先进入处理部分,再控制循环,即至少执行一次循环体,如下图a所示。所示。先控制循环,后进入处理部分,即根据判断结果,控制循环的执行先控制循环,后进入处理部分,即根据判断结果,控制循环的执行与否,有时可以不进入循环体就退出循环程序。流程图如下图与否,有时可以不进入循环体就退出循环程序。流程图如下图b所示:所示:(a)(b)循环程序分为循环程序分为单循环单循环和和多重循环多重循环,两重以上循环称为多,两重以上循环称为多重循环。重循环。1、单循环、单循环(1)循环次数已知的循环程序循环次数已知的循环程序例:课本例:课本P81例例45:工作单元清:工作单元清0设有设有50个工作单元,其个工作单元,其首址首址存放在存放在DPTR中,中,循环次数循环次数存放在存放在R2中,每执行一次循环,中,每执行一次循环,R2的内容减的内容减1,直至,直至R2=0。循环结束。循环结束。CLEAR:CLR A MOV R2,#32H;循环次数赋初值循环次数赋初值 LOOP:MOVX DPTR,A INC DPTR;修改指针修改指针 DJNZ R2,LOOP RET

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com