Board logo

标题: 汇编子程序和库 [打印本页]

作者: 苹果也疯狂    时间: 2015-1-27 15:31     标题: 汇编子程序和库

7.1子程序的定义
如果某程序段在源程序内反复出现,那么,就可把该程序段定义为子程序。这样可以缩短源程序长度、节省目标程序的存储空间,也可提高程序的可维护性和共享性。
定义子程序的一般格式如下:
子程序名PROC[NEAR| FAR]
…;子程序体
子程序名ENDP
对子程序定义的具体规定如下:
、“子程序名”必须是一个合法的标识符,并前后二者要一致;
、PROC和ENDP必须是成对出现的关键字,它们分别表示子程序定义开始和结束;
、子程序的类型有近(NEAR)、远(FAR)之分,其缺省的类型是近类型;
、如果一个子程序要被另一段的程序调用,那么,其类型应定义为FAR,否则,其类型可以是NEAR。显然,NEAR类型的子程序只能被与其同段的程序所调用;
、子程序至少要有一条返回指令,也可有多条返回指令。返回指令是子程序的出口语句,但它不一定是子程序的最后一条语句;
、子程序名有三个属性:段值、偏移量和类型。其段值和偏移量对应于子程序的入口地址,其类型就是该子程序的类型。
编写子程序除了要考虑实现子程序功能的方法外,还要养成书写子程序说明信息的好习惯。其说明信息一般包括以下几方面内容:
、功能描述
、入口和出口参数
、所用寄存器 ;可选项,最好采用寄存器的保护和恢复方法,使之使用透明化
、所用额外存储单元 ;可选项,可以减少为子程序定义自己的局部变量
、子程序的所采用的算法 ;可选项,如果算法简单,可以不写
、调用时的注意事项 ;可选项,尽量避免除入口参数外还有其它的要求
、子程序的编写者 ;可选项,为将来的维护提供信息
、子程序的编写日期 ;可选项,用于确定程序是否是最新版本
这些说明性信息虽然不是子程序功能的一部分,但其他程序员可通过它们对该子程序的整体信息有一个较清晰认识,为准确地调用它们提供直接的帮助,与此同时,也为实现子程序的共享提供了必要的资料。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0