欢迎来到天天文库
浏览记录
ID:50337893
大小:898.50 KB
页数:70页
时间:2020-03-08
《单片机应用技术 教学课件 作者 徐江海 第4章 汇编语言程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章汇编语言程序设计本章主要内容4、算术运算、逻辑运算和交换指令与程序设计1、程序设计的基本方法与顺序程序设计2、控制转移指令与循环程序、分支程序设计3、堆栈及其操作指令5、查表指令与查表程序设计6、应用实例——温控3一、程序设计的步骤1、分析问题,明确所要解决问题的要求,确定算法或解题思路2、画流程图起止框处理框判断框输入/输出框流程指向线3、编写源程序画流程图4、汇编和调试程序书写的两种格式:第一种是完整程序格式的形式,即在第二章介绍的程序一般结构。第二种就是子程序的形式。二、顺序程序设计顺序程序设计:又叫直线
2、程序,它是按照指令的顺序依次执行的程序,它也是所有程序设计中最基本、最重要的程序。[例3-1]0~15共十六立即数送到内部RAM30H开始的单元中。本题题意非常清楚,就是将0送到内RAM30H单元,将1送到内RAM31H单元,以此类推。将立即数送到内部RAM单元有现成的指令,这是一个功能性数据处理,格式上可以写成子程序的形式,程序设计如下:START:MOV30H,#0;(30H)←#0MOV31H,#1;(31H)←#1…MOV3FH,#15;(3FH)←#15RET;返回一、循环程序的结构1、循环程序:主要是用来
3、实现功能相同、反复执行的操作。Y图3-2循环程序的两种结构N循环体循环修改循环初值退出循环N循环体循环修改循环初值退出循环循环控制循环控制Y循环程序一般包括四个部分:循环初值、循环体、循环修改和循环控制。循环初值:循环程序开始循环执行的初始条件,如循环的次数等,在循环程序的开始部分,只执行一次。循环体:是循环程序的核心,就是反复要完成的具体操作功能。循环修改:循环体执行一次后,再次执行之前,需要对有关参数进行修改,为下一轮循环做准备,和循环体一样,循环修改的程序内容也是反复多次执行的。循环控制:根据循环预先确定的次数
4、,或者循环过程中有关操作数的内容进行判断,控制循环的结束。2、加1和减1指令。(1)加1指令1)INCA;A←A+12)INCRn;Rn←Rn+13)INCdirect;(direct)←(direct)+14)INC@Ri;(Ri)←(Ri)+15)INCDPTR;DPTR←DPTR+1(2)减1指令1)DECA;A←A-12)DECRn;Rn←Rn-13)DECdirect;(direct)←(direct)-14)DEC@Ri;(Ri)←(Ri)-13、循环程序设计举例[例3-3]0~15共十六个立即数送到内部
5、RAM30H开始的单元中。MOVR0,#30HMOVA,#0MOV@R0,AMOVR0,#31HMOVA,#1MOV@R0,AMOVR0,#3FHMOVA,#15MOV@R0,AMOV30H,#0MOV31H,#1……MOV3FH,#15START:MOVR2,#16;循环次数MOVR0,#30H;指向第一个单元MOVA,#0;送的第一个数;以上循环初值AA:MOV@R0,A;循环体,完成数据传INCA;循环修改INCR0;修改指向的单元DJNZR2,AA;循环次数减1,到0退;出循环,循环控制RET;子程序返回0二
6、、比较转移指令与循环程序设计1、比较转移指令(1)CJNEA,#data,rel;PC←PC+3,若A=data,程序顺序执行;若A﹥data,PC←PC+rel,程序转移,Cy=0;;若A﹤data,PC←PC+rel,程序转移,Cy=1;(2)CJNERn,#data,rel;PC←PC+3,若Rn=data,程序顺序执行;若Rn﹥data,PC←PC+rel,程序转移,Cy=0;;若Rn﹤data,PC←PC+rel,程序转移,Cy=1;(3)CJNE@Ri,#data,rel;PC←PC+3,若=data,程
7、序顺序执行;若(Ri)﹥data,PC←PC+rel,程序转移,Cy=0;;若(Ri)﹤data,PC←PC+rel,程序转移,Cy=1;(4)CJNEA,direct,rel;PC←PC+3,若A=(direct),顺序执行;;若A﹥(direct),PC←PC+rel,程序转移,Cy=0;;若A﹤(direct),PC←PC+rel,程序转移,Cy=1;2.比较转移指令应用举例例3-3程序用比较转移指令修改如下:START:MOVR0,#30H;指向第一个单元MOVA,#0;送的第一个数AA:MOV@R0,A;循
8、环体,完成数据传送INCA;修改送的数据INCR0;修改指向的单元CJNEA,#16,AA;根据操作数信息控;制循环循环控制RET;子程序返回也可以通过对R0中数据判断比较控制程序结束1.循环移位指令(1)循环左移指令RLA;三、循环移位指令与程序设计(2)循环右移指令RRA;(3)带进位位的循环左移指令RLCA;(4)带进位位的循环右移指令R
此文档下载收益归作者所有