单片机原理及应用第五章汇编语言程序设计.ppt
《单片机原理及应用第五章汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用第五章汇编语言程序设计.ppt(35页珍藏版)》请在三一办公上搜索。
1、第五章 汇编 语言程序设计,1 程序设计方法2 顺序程序3 分支程序4 循环程序5 子程序6 算术运算程序,第五章 汇编语言程序设计,5-1-2 汇编语言程序设计步骤一.分析问题。二.确定算法。三.制定程序流程图:表示程序结构和程序功能四.编制源程序 1.合理分配存储器单元和了解I/O接口地址。2.按功能设计程序,明确各程序之间的相互关系。3.用注释行说明程序,便于阅读和修改调试和修改。五.程序调试。,第五章 汇编语言程序设计,5-1-3 评价程序质量的标准(1)程序的执行时间。(2)程序所占用的内存字节数。(3)程序的逻辑性、可读性。(4)程序的兼容性、可扩展性。(5)程序的可靠性。,5-2
2、 顺序程序 直线程序又称简单程序,程序走向只有一条路径。例1 双字节变补程序(设数据在R4 R5中)双字节变补程序(设数据在R4R5中):MOV A,R5;取低字节CPL AADD A,#1;低字节变补MOV R5,AMOV A,R4;取高字节CPL AADDC A,#0;高字节变补MOV R4,A,第五章 汇编语言程序设计,第五章 汇编语言程序设计,例2 压缩式BCD码分解成为单字节BCD码。,MOV R0,#40H;设指针MOV A,R0;取一个字节MOV R2,A;暂存ANL A,#0FH;清0高半字节INC R0MOV R0,A;保存数据个位MOV A,R2SWAP A;十位换到低半字
3、节ANL A,#0FHINC R0MOV R0,A;保存数据十位,十 个,第五章 汇编语言程序设计,例5-1 假设两个双字节无符号数,分别存放在R1R0和R3R2中,高字节在前,低字节在后。编程使两数相加,和数存放回R2R1R0中。ORG 1000h CLR C MOV A,R0;取被加数低字节至A ADD A,R2;与加数低字节相加 MOV R0,A;存和数低字节 MOV A,Rl;取被加数高字节至A ADDC A,R3;与加数高字节相加 MOV Rl,A;存和数高字节 MOV A,#0 ADDC A,#0;加进位位 MOV R2,A;存和数进位位 SJMP$;原地踏步 END,第五章 汇编
4、语言程序设计,5-3 分支程序 由条件转移指令构成程序判断框部分,形成程序分支结构。5-3-1单重分支程序 一个判断决策框,程序有两条出路。两种分支结构。例1 求R2中补码绝对值,正数不变,负数变补。MOV A,R2 JNB ACC.7,NEXT;为正数?CPL A;负数变补 INC A MOV R2,ANEXT:SJMP NEXT;结束,第五章 汇编语言程序设计,5-3-2 多重分支程序多次使用条件转移指令,形成两个以上判断框。例5-7 设30H单元存放的是一元二次方程ax2+bx+c=0根的判别式=b2-4ac的值。解:值为有符号数,有三种情况,即大于零、等于零、小于零。,第五章 汇编语言
5、程序设计,编程:ORG 1000HSTART:MOV A,30H;值送A JNB ACC.7,YES;=0转YES MOV 31H,#0;0转TOW MOV 31H,#1;=0有相同实根 SJMP FINISHTOW:MOV 31H,#2;有两个不同实根FINISH:SJMP$,第五章 汇编语言程序设计,5-3-3 N路分支程序 N路分支程序是根据前面程序运行的结果,可以有N种选择,并能转向其中任一处理程序。,第五章 汇编语言程序设计,例5-10 128路分支程序。功能:根据R3的值(00H7FH)转到128个目的地址。参考程序:JMPl28:MOV A,R3 RL A;(A)2 MOV DP
6、TR,#PRGTBL;散转表首址送DPTR JMP A+DPTR;散转PRGTBL:AJMP ROUT00 AJMP ROUT01 AJMP ROUT7F;128个AJMP指令占256个字节,第五章 汇编语言程序设计,例5-11 256路分支程序 功能:根据R3的值转移到256个目的地址;入口条件:(R3)=转移目的地址代号(00HFFH);出口条件:转移到相应分支处理程序入口。解:JMP256:MOV A,R3;取N值 MOV DPTR,#PRGTBL;指向分支地址表首址 CLR C RLC A;(A)2 JNC LOWl28;是前128个分支程序,则转移 INC DPH;否则基址加256,
7、第五章 汇编语言程序设计,LOWl28:MOV TEMP,A;暂存A INC A;指向地址低8位 MOVC A,A+DPTR;查表,读分支地址低8位 PUSH ACC;地址低8位入栈 MOV A,TEMP;恢复A,指向地址高8位 MOVC A,A+DPTR;查表,读分支地址高8位 PUSH ACC;地址高8位入栈 RET;分支地址弹入PC实现转移PRGTBL:DW ROUT00;占用512个字节 DW ROUT01,第五章 汇编语言程序设计,例5-12 大于256路分支转移程序 功能:根据入口条件转向n个分支处理程序 入口条件:(R7R6)=转移目的地址代号;出口条件:转移到相应分支处理程序入
8、口。程序散转表中有N条LJMP指令,每条LJMP指令占3个字节,因此要按入口条件将址代号乘以3,用乘积的高字节加DPH,乘积的低字节送A(变址寄存器)。PRGTBL:LJMP ROUT0 LJMP ROUT1 LJMP ROUT2,第五章 汇编语言程序设计,参考程序:JMPN:MOV DPTR,#PRGTBL;DPTR指向表首址MOV A,R7;取地址代号高8位MOV B,#3;MUL AB;3ADD A,DPH;MOV DPH,A;修改指针高8位MOV A,R6;取地址代号低8位MOV B,#3;3MUL AB;XCH A,B;交换乘积的高低字节ADD A,DPH;乘积的高字节加DPHMOV
9、 DPH,AXCH A,B;乘积的低字节送AJMP A+DPTR;散转,第五章 汇编语言程序设计,5-4 循环程序包含多次重复执行的程序段,循环结构使程序紧凑。5-4-1循环程序的导出各个环节任务:一初始化部分循环准备工作。如:清结果单元、设指针、设循环控制变量初值等。二循环体循环工作部分:需多次重复处理的工作。循环控制部分:1.修改指针和循环控制变量。2.检测循环条件:满足循环条件,继续循环,否则退出循环。三.结束部分 处理和保存循环结果。1)已知循环次数 2)循环次数未知允许0次循环的循环结构:在循环工作之前检测循环条件。,第五章 汇编语言程序设计,单重循环简单循环结构:循环体中不套循环。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 第五 汇编语言 程序设计

链接地址:https://www.31ppt.com/p-6067866.html