文档详情

顺序程序设计.pptx

发布:2024-04-06约3.57千字共11页下载文档
文本预览下载声明

单片机原理与接口技术建设线上线下混合金课、系统打造一流课堂

汇编语言程序设计北京石油化工学院曹建树jianshu@bipt.edu.cnQQ:2245682503北京石油化工学院

汇编语言程序设计程序是指令的有序集合。单片机运行就是执行指令序列的过程。编写这一指令序列的过程称为程序设计。用汇编语言进行程序设计的过程和用高级语言进行程序设计相类似。对于比较复杂的问题:首先要掌握解决它的方法和步骤——算法,有了合适的算法常常可以起到事半功倍的效果;其次,就是用操作框、带箭头流程线、框内外必要的文字说明所组成的流程图来描述算法;最后是根据流程图用程序设计语言来编制程序。

顺序程序流程示意图循环程序流程示意图a)先处理后判断b)先判断后处理分支程序流程示意图a)单分支b)多分支汇编语言程序设计

顺序程序设计顺序程序又称简单程序,按顺序执行指令。ABC例1双字节变补程序(设数据在R4R5中)MOV A,R5 ;取低字节CPL AADD A,#1 ;低字节变补MOV R5,AMOV A,R4 ;取高字节CPL AADDCA,#0 ;高字节变补MOV R4,A顺序结构是最简单的一种基本结构。如果某一个需要解决的问题可以分解成若干个简单的操作步骤,并且可以由这些操作按一定的顺序构成一种解决问题的算法,则可用简单的顺序结构来进行程序设计。

000EH000FH000EH000FH000EH000FH000EH000FH000EH000FH例2编程将外部数据存储器的000EH和000FH单元的内容相换。分析外部数据存储器的数据操作只能用MOVX指令,且只能和A之间传送,因此必须用一个中间环节作暂存,设用20H单元。用R0、R1指示两单元的低八位地址,高八位地址由P2指示。编程过程如下:000EH000FH000EH000FH顺序程序设计

ORG0000HMOVP2,#0H;送地址高八位至P2口MOVR0,#0EH;R0=0EHMOVR1,#0FH ;R1=0FHMOVXA,@R0;A=(000EH)MOV20H,A;(20H)=(000EH)MOVXA,@R1;A=(000FH)XCHA,20H;A=(000EH),(20H)=(000FH)MOVX@R1,AMOVA,20HMOVX@R0,A;交换后的数送各单元SJMP$END例3压缩式BCD码分解成为单字节BCD码。十个片内RAM42H0十41H0个40HMOV R0,#40H;设指针MOV A,@R0 ;取一个字节MOV R2,A ;暂存ANL A,#0FH ;清0高半字节INC R0MOV @R0,A;保存数据个位MOV A,R2SWAPA ;十位换到低半字节ANL A,#0FHINC R0MOV @R0,A ;保存十位数据顺序程序设计

例5:双字节压缩BCD码转换成二进制码子程序。解:该转换的算法为:(d3d2d1d0)BCD=(d3×10+d2)×100+(d1×10+d0)实现该算法的参考子程序如下:入口:R5(千位、百位)、R4(十位、个位)为BCD码。出口:R5R4(16位无符号二进制整数)。BCD4B: ORG2100H MOVA,R5 ;(A)←d3d2(千位、百位) MOVR2,A ;(R2)←d3d2 ACALLBCD2B ;调例1子程序实现d3×10+d2→A MOVB,#64H ;(B)←100 MULAB ;(d3×10+d2)×100 MOVR6,A ;R6暂存乘积低8位 XCHA,B ;乘积高8位送A MOVR5,A ;R5暂存乘积高8位 MOVA,R4

显示全部
相似文档