文档详情

第三章80C51单片机的程序设计.ppt

发布:2016-09-13约2.17万字共112页下载文档
文本预览下载声明
§3.2 汇编语言及其程序设计 二、 汇编语言程序设计 关于子程序的设计 一般现场保护/恢复方式有两种: 若每次调用需保护的内容不同,可采用前者。这样每次调用均需在主程序中编写保护和恢复程序,增加程序量,多占用存储空间。 对每次调用保护的内容固定,则应采用后者。既减少程序量又有利于程序的读、写和调试。 在编写子程序时,还应注意保护(压栈)和恢复(弹出)的顺序,否则将出错。 §3.2 汇编语言及其程序设计 二、 汇编语言程序设计 关于子程序的设计 子程序的特性 随着程序设计技术的发展,子程序在程序设计中越来越重要。因此,对编制子程序应有较高的要求,除了通常在程序设计中应遵循的原则(程序应尽量简炼、占用存储空间少,执行速度快等)外,还应具备以下特性: §3.2 汇编语言及其程序设计 二、 汇编语言程序设计 关于子程序的设计 子程序的特性 1)通用性 为使子程序能适应各种不同程序、不同条件下的调用,子程序应具有较强的通用性。例如,数制转换子程序、多字节运算子程序等,理应能适应各种不同应用程序的调用,至少应尽量做到在本程序范围内通用。 §3.2 汇编语言及其程序设计 二、 汇编语言程序设计 关于子程序的设计 子程序的特性 2)可浮动性 是指子程序可设置在存储器的任何区域。假如子程序只能设置在固定的地址段,在编制主程序时就要特别注意存储空间的分配。为使子程序能够浮动,必须在子程序中避免选用绝对转移地址,而应选用相对转移类指令,子程序首地址也应采用符号地址。 §3.2 汇编语言及其程序设计 二、 汇编语言程序设计 关于子程序的设计 子程序的特性 3)可递归和可重入性 子程序能自己调用自己的性质,称为子程序的可递归性;而子程序能同时被多个任务(或多个用户程序)调用的性质,称为子程序的可重入性。这类子程序常在庞大而复杂的程序中应用,单片机应用程序设计很少用到。 §3.2 汇编语言及其程序设计 二、 汇编语言程序设计 关于子程序的设计 子程序说明文件 对于通用子程序,为便于各种用户程序的选用,要求在子程序编制完成后提供一个说明文件,使用户不必详读源子程序,只需阅读说明文件就能了解其功能及应用。 子程序说明文件一般包含如下内容: §3.2 汇编语言及其程序设计 二、 汇编语言程序设计 关于子程序的设计 子程序说明文件 ①子程序名。标明反映子程序功能的名字。 ②子程序功能。简要说明子程序能完成的主要功能。 ③初始和结果条件。说明有哪些参量、参量传送和存储单元,说明执行结果及其存储单元。 §3.2 汇编语言及其程序设计 二、 汇编语言程序设计 关于子程序的设计 子程序说明文件 ④所用的寄存器。提示主程序对哪些寄存器内容是否需要进栈保护。 ⑤子程序调用。指明本子程序需调用哪些子程序。有些复杂而庞大的子程序还需说明占用资源情况、程序算法及程序结构流程图等。随子程序功能的复杂程度不同,其说明文件的要求也各不相同。 §3.2 汇编语言及其程序设计 二、 汇编语言程序设计 关于子程序的设计 常用子程序举例 例9. 将单字节无符号二进制整数转换成三位压缩型 BCD码。 采用80C51的除法指令,可以很方便地实现单字节二进制整数转换成三位压缩型BCD码。三位BCD码需占用二个字节,将百位BCD码存于高位地址字节单元,十位和个位BCD码存于低地址字节单元中。 §3.2 汇编语言及其程序设计 二、 汇编语言程序设计 关于子程序的设计 例9. 入口参数:8位无符号二进制整数存于R4中。 出口参数:三位BCD码存于R4、R5中。 转换方法:采用除法指令。子程序如下: BINBCD:PUSH PSW PUSH ACC ;现场保护 PUSH B §3.2 汇编语言及其程序设计 二、 汇编语言程序设计 关于子程序的设计 例9. 程序续 MOV A,R4 ;二进制整数送A MOV B,#100 ;十进制数100送B DIV AB ;(A)/100,以确定百位数 MOV R5,A ;商(百位数)存于R5中 MOV A,#10 ;将10送A中 XCH A,B
显示全部
相似文档