欢迎来到天天文库
浏览记录
ID:48739644
大小:844.00 KB
页数:38页
时间:2020-01-21
《单片机第4章.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、§4-1汇编语言源程序的格式和伪指令汇编语言程序:用汇编语言编写的、完成特定功能的指令序列。汇编程序:能将汇编语言源程序转换成机器语言目标程序的系统软件。汇编语言程序到机器语言程序的转换过程称为汇编。1.手工汇编:人工查指令表汇编。用于设计短小程序或调试程序的场合。2.机器汇编:用汇编程序进行汇编。第4章89C51汇编语言程序设计源程序使用机器汇编要考虑汇编程序的约定1)按指令格式和语法规则编写程序。常数的表示:十进制数:20十六进制数:87H,0F0H二进制数:01011001B字符:‘H’字符
2、串:“Hello”。2)使用伪指令提供汇编信息。汇编的主要任务:1)确定程序中每条汇编语言指令的指令机器码。2)确定每条指令在存储器中的存放地址。3)提供错误信息。4)提供目标执行文件(*.BIN/*.HEX)和列表文件(*.LST)。一.汇编语言指令类型1.机器指令:指令系统中的全部指令,每条指令有对应的机器代码。2.伪指令:汇编控制指令,仅提供汇编信息,没有指令代码。一.汇编语言指令类型3.宏指令:宏汇编功能:将需要多次反复执行的程序段定义成一个宏指令名(宏定义),编程时,可在程序中使用宏指令名
3、来替代一段程序(宏调用)。宏定义过程:宏指令名MACRO形式参数…;定义程序段ENDM宏调用过程:…宏指令名实际参数…宏指令名实际参数二.汇编控制指令(伪指令)常用伪指令及其功能:1.ORG—起始地址指令:指明程序和数据块起始地址。指令地址机器码源程序ORG2000H2000H7830MAIN:MOVR0,#30H2002HE6MOVA,@R0…ORG3000H3000H23DB23H,100,‘A’3001H643002H412.DB—定义字节型常数指令。例:DB12H,100,‘A’4.EQU—
4、等值。为标号或标识符赋值。X1EQU2000HX2EQU0FH…MAIN:MOVDPTR,#X1ADDA,#X25.END—结束汇编指令。例:START:……ENDSTART3.DW—定义字型常数指令。例:DW1234H,5678H三、汇编语言程序设计步骤(一).确定方案和计算方法(二).了解应用系统的硬件配置、性能指标。(三).建立系统数学模型,确定控制算法和操作步骤。(四).画程序流程图表示程序结构和程序功能(五).编制源程序1.合理分配存储器单元和了解I/O接口地址。2.按功能设计程序
5、,明确各程序之间的相互关系。3.用注释行说明程序,便于阅读和修改调试和修改。开始1YN?(六).程序仿真调试四、常用程序结构:直线程序、分支程序、循环程序、子程序一、直线程序直线程序又称简单程序,程序走向只有一条路径。例:双字节变补程序(设数据在R4R5中):MOVA,R5;取低字节CPLAADDA,#1;低字节变补MOVR5,AMOVA,R4;取高字节CPLAADDCA,#0;高字节变补MOVR4,A例4-3-4压缩式BCD码分解成为单字节BCD码。MOVR0,#40H;设指针MOVA,@R0;取
6、一个字节MOVR2,A;暂存ANLA,#0FH;清0高半字节INCR0MOV@R0,A;保存数据个位MOVA,R2SWAPA;十位换到低半字节ANLA,#0FHINCR0MOV@R0,A;保存数据十位十个二、单重分支程序由条件转移指令构成程序判断框部分,形成程序分支结构。一个判断决策框,程序有两条出路。条件满足?N影响条件Y处理段条件满足?N影响条件Y处理1处理2例求R2中补码绝对值,正数不变,负数变补。MOVA,R2JNBACC.7,NEXT;为正数?CPLA;负数变补INCAMOVR2,ANEX
7、T:SJMPNEXT;结束例:行李计价:当G≤5,M=G×3;当G>5,M=G×3+(G-5)×(5-3)FRT:MOVA,40H;取行李重量计价单位GMOVR3,AMOVB,#03H;M=G×3MULABMOVR2,A;暂存3GMOVA,R3;取回GCJNEA,#05H,L1;G≤5?WWW:MOVA,R2SJMPWETCL1:JCWWW;是,转至WWWSUBBA,#05H;否则M=3G+2(G-5)RLCAADDA,R2WETC:MOV41H,A;存结果MRET三、循环程序包含多次重复执行的程序
8、段,循环结构使程序紧凑。循环程序的构成循环控制?循环工作循环结束循环初始化YN各个环节任务:一.初始化部分循环准备工作。如:清结果单元、设指针、设循环控制变量初值等。二.循环体循环工作部分:需多次重复处理的工作。循环控制部分:1.修改指针和循环控制变量。2.检测循环条件:满足循环条件,继续循环,否则退出循环。三.结束部分处理和保存循环结果。允许0次循环的循环结构:在循环工作之前检测循环条件。(一)、单重循环简单循环结构:循环体中不套循环。例:求n个单字节数据的累加,
此文档下载收益归作者所有