第6章 汇编语言程序设计ppt课件.ppt

第6章 汇编语言程序设计ppt课件.ppt

ID:58699059

大小:229.50 KB

页数:41页

时间:2020-10-04

第6章 汇编语言程序设计ppt课件.ppt_第1页
第6章 汇编语言程序设计ppt课件.ppt_第2页
第6章 汇编语言程序设计ppt课件.ppt_第3页
第6章 汇编语言程序设计ppt课件.ppt_第4页
第6章 汇编语言程序设计ppt课件.ppt_第5页
资源描述:

《第6章 汇编语言程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、6.1汇编语言6.2基本程序结构设计6.3子程序设计6.4实用程序举例小结第6章汇编语言程序设计6.1汇编语言采用汇编语言编写的程序叫做汇编语言源程序,源程序只能用于人机对话,并不能被机器直接执行,必须由“汇编程序”翻译成机器语言的目的程序。汇编语言(AssemblyLanguage)是指用指令助记符代替机器码的编程语言。它是一种面向机器的程序设计语言,属于低级程序语言。其结构简单,执行速度快,程序易优化,占用存储空间小,是单片机应用系统开发中最常用的程序设计语言。汇编语言的缺点是可读性比较差。汇编语言程序设计的基本步骤如下。(1)题意分析(2)画出程序流程图(3)分配内存工作区及

2、有关端口地址(4)编制汇编源程序(5)仿真、调试程序(6)固化程序按照程序编写的顺序依次执行,编写这类程序主要应注意正确地选择指令,提高程序的执行效率。6.2基本程序结构设计6.2.1顺序结构程序设计例6.2拆字程序。将30H的内容拆开,高4位送31H低位,低4位送32H低位。(P100)分析:利用逻辑与指令实现内容的屏蔽。程序流程如图所示。解:编程清单如下:ORG0050HCWORD:MOVA,30HSWAPAANLA,#0FHMOV31H,A;将(30H)高位存入(31H)MOVA,30HANLA,#0FHMOV32H,A;将(30H)低位存入(32H)END例6.1双字节二进

3、制数求补码。高位在R3,低位在R2中。(P99)开始取反,相加取反加进位R2AAR2R3AAR3返回ORG2000HMAIN:MOVA,R2CPLAADDA,#01HMOVR2,A;低位字节补码送R2MOVA,R3CPLAADDCA,#01H;高位加进位MOVR3,A;高位字节补码送R3例1将8位二进制数转换为BCD码数,将大数放在3FH单元中,已知待转换的数已在R1中。(顺序程序)开始A÷100将A中的百位取出余数÷10将待转换的数送A将A中的十位和B中的个位取出结束ORG0100HMAIN:MOVA,R1;待转换的数送累加器AMOVB,#100;B←100DIVAB;执行A÷B

4、MOV30H,A;将整数(百位)另存在30H单元MOVA,B;A←(B),余数送AMOVB,#10;B←10DIVAB;执行A÷B;(商-十位在A,余数-个位在B)SWAPA;十位在A的高4位MOV31H,B;个位在31H低4位ORL31H,A;十位在31H的高4位SJMP$;停止百位十位百位30H31H6.2.2循环结构程序设计在程序设计中,当需要对某段程序多次重复执行时,可采用循环的方法设计程序。循环结构的程序一般包括下面几个部分:◆置循环初值◆循环体(循环工作)◆循环修改◆循环控制例6.4内部RAM30H单元开始存放了10个数,找出其中最大的数。分析:采用比较交换法来查找最大

5、数。先指定MAX单元,使第一个数存入MAX单元,然后把它和数据块中的每一个数逐一比较,大的数存放在MAX单元,直到数据块中每个数都比较完。循环工作部分循环控制未完开始初始化部分循环修改部分完ORG0100HMAXDATA0050H;16位地址MOVR0,#30HMOVR2,#10MOVMAX,@R0DECR2LOOP1:INCR0MOVA,@R0CJNEA,MAX,CHKCHK:JCLOOP2;A<MAX,转MOVMAX,A;A>MAXLOOP2:DJNZR2,LOOP1;10个数未比完SJMP$ENDA<MAX?开始第一个数送MAX数据区首地址R0数据块长度R2读下一个数送AA送

6、MAXR2-1=0?结束YYNNORG2000HMOVR0,#40H;源数据地址指针MOVDPRT,#1000H;目标数据地址指针MAIN:MOVA,@R0;取源数据MOVX@DPTR,A;存目标数据CJNEA,@00H,NEXT;未到遇0,转NEXT;继续传送SJMPFINISH;到遇0,结束NEXT:INCR0;调整源地址指针INCDPTR;调整目标地址指针AJMPMAIN;继续传送FINISH:SJMP$;结束END例6.3将内部RAM40H单元的数组传到外部RAM1000H单元,直到被传的数为0。A=0?开始外部数据区首地址DPRT内部数据区首地址R0DPRT加1结束YN(

7、R0)AA(DPRT)例2设单片机系统采集的8个单字节数据存储在单片机内部RAM的30H开始的连续单元中,求它们的均值。解:(1)求数据的总和设S为数据的总和,在计算机中求多个数据总和的算法如下:(2)求均值除2运算可采用由移操作完成:RRCARRCACY设总和S存放在R5和R6中,R5中存高8位。ORG0100HACALLSIGMA;调用求总和子程序ACALLMEAN;调用求均值子程序SIGMA:MOVR1,#30H;建立地址指针MOVR5,#00H;存放总和单元清

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。