您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 4第4章 汇编语言程序设计1
第四章80C51汇编语言程序设计4.180C51汇编语言程序设计概述一、程序设计语言1.机器语言2.汇编语言3.高级语言二、汇编语言设计规范1.汇编语言程序的书写格式2.汇编语言伪指令格式三、汇编语言称许设计步骤1.分析工作任务,明确要求、目标、技术参数2.确定解决问题的方法和工组步骤3.确定工作流程和程序流程图4.分配内存单元、确定程序和数据的存放地址5.依据流程图编写程序6.上机调试、修改及最后确定源程序4.2顺序与循环设计一、顺序程序设计例1将20H单元的两个BCD码拆开变成ASCII码,存放在21H、22H单元(BCD码0~9对应ASCII码30H~39H)方法一采用将BCD码数除16(即除后结果相当于右移4位,商为高位在A中,余数为低位在B中。ORG2000H1MOVA,20H2MOVB,#10H4DIVAB2ORLB,#30H2MOV22H,B1ORLA,#30H1MOV21H,AEND方法二采用将20H单元的低4位交换出来加以转换、存放,然后将高四位再转到低4位转换、存放。ORG2000H1MOVR0,#22H1MOV@R0,#01MOVA,20H1XCHDA,@R02ORL22H,#30H1SWAPA1ORLA,#30H1MOV21H,AEND比较:方法一:占用程序存储器16个字节,程序执行时间为13个机器周期;方法二:占用程序存储器15个字节,程序执行时间为9个机器周期二、循环程序设计•循环初态•循环体•循环控制例1已知80C51单片机采用晶振为6MHz,要求设计一个软件延时程序,延时时间为10ms。【分析】延时时间长短与系统所用的晶振频率和程序运行所占机器周期数有关。ORG1000H1MOVR0,#0AH1DL2:MOVR1,#MT1DL1:NOP1NOP2DJNZR1,DL12DJNZR0,DL2END内循环预定值MT计算方法如下:(1+1+2)×2us×MT=1000usMT=125=7DH例2用P1端口作为数据读入端口,为了读取稳定数值,要求连续测量8此后取平均值。【分析】利用R0、R1作为8次累加的16位工作寄存器,将其内容整体右移3位(除8),结果存在R1中。程序清单ORG1500HMOVR0,#0MOVR2,#03HMOVR1,#0LP3:MOVA,R0MOVR2,#8RRCA,R0LP2:MOVP1,#0FFHMOVR0,AMOVA,P1MOVA,R1ADDA,R1RRCAJNCLP1MOVR1,AINCR0DJNZR2,LP3LP1:MOVR1,ALP:SJMPLPDJNZR2,LP2END5.3分支程序设计•无条件转移•条件转移•散转一、条件/无条件转移程序举例例1设5AH单元中有一个变量X,请编写计算下述函数程序,结果存于5BH单元。X2-1X10Y=X2+810≤X≤1541X15【分析】依据题意,首先应先计算X2,并暂存于R1中,由于X2最大值为225,用一个寄存器即可。根据X的值范围,决定Y的值。在进行X10和X15时考虑采用(CJNE、JC)和(CJNEJNC)两条指令结合的办法。ORG0100HMOVA,5AHMOVA,R1MOVB,AADDA,#08HMULABMOVR0,AMOVR1,ASJMPL4MOVA,5AHL2:MOVA,R1CJNEA,#10,L1CLRCL1:JCL2SUBBA,#01HMOVR0,#41MOVR0,ACJNEA,#10,L3L4:MOV5BH,R0L3:JNCL4SJMP$END二、散转程序设计散转指令的操作是把16位数据指针DPTR的内容于A的8位无符号数相加,形成散转地址,装入PC以达到散转的目的。散转程序设计的两种方法:(1)数据指针DPTR固定,根据A的内容转入相应的分支程序中。(2)累加器A的内容清0,根据DPTR的值决定散转地址,DPTR的值可以根据查表或其它方法获得。例2根据R7的内容,转向各相应操作的程序R7=0,转入OPR0R7=1,转入OPR1…R7=n转入OPRn程序清单如下:MOVDPTR,#JPTAB1MOVA,R7ADDA,R7JNCNOADINCDPHNOAD:JMP@A+DPTRJPTAB1:AJMPOPR0AJMPOPR1…AJMPOPRn5.4查表程序设计•80C51单片机所设置的查表指令MOVCA,@A+DPTRMOVCA,@A+PC简单查表法举例(X与Y一一对应)例1:设计一个将十六进制数转换成ASCII码的子程序。设16进制数在R0中,转换号的数再放回R0。ORG2000HMOVA,R0ANLA,#0FHADDA,#2MOVCA,@A+PCMOVR0,ARETTAB:DB30H,31H,32,33H,34HDB35H,36H,37H,38H,39HDB41H,42H,43H,44H,45H,46H
本文标题:4第4章 汇编语言程序设计1
链接地址:https://www.777doc.com/doc-3469227 .html