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