灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2104回复:0

汇编子程序和库

楼主#
更多 发布于:2012-09-10 18:57

7.1 子程序的定义

如果某程序段在源程序内反复出现,那么,就可把该程序段定义为子程序。这样可以缩短源程序长度、节省目标程序的存储空间,也可提高程序的可维护性和共享性。

定义子程序的一般格式如下:

子程序名PROC [NEAR | FAR]

…;子程序体

子程序名ENDP

对子程序定义的具体规定如下:

、“子程序名”必须是一个合法的标识符,并前后二者要一致;

、PROC和ENDP必须是成对出现的关键字,它们分别表示子程序定义开始和结束;

、子程序的类型有近(NEAR)、远(FAR)之分,其缺省的类型是近类型;

、如果一个子程序要被另一段的程序调用,那么,其类型应定义为FAR,否则,其类型可以是NEAR。显然,NEAR类型的子程序只能被与其同段的程序所调用;

、子程序至少要有一条返回指令,也可有多条返回指令。返回指令是子程序的出口语句,但它不一定是子程序的最后一条语句;

、子程序名有三个属性:段值、偏移量和类型。其段值和偏移量对应于子程序的入口地址,其类型就是该子程序的类型。

编写子程序除了要考虑实现子程序功能的方法外,还要养成书写子程序说明信息的好习惯。其说明信息一般包括以下几方面内容:

、功能描述

、入口和出口参数

、所用寄存器 ;可选项,最好采用寄存器的保护和恢复方法,使之使用透明化

、所用额外存储单元 ;可选项,可以减少为子程序定义自己的局部变量

、子程序的所采用的算法 ;可选项,如果算法简单,可以不写

、调用时的注意事项 ;可选项,尽量避免除入口参数外还有其它的要求

、子程序的编写者 ;可选项,为将来的维护提供信息

、子程序的编写日期 ;可选项,用于确定程序是否是最新版本

这些说明性信息虽然不是子程序功能的一部分,但其他程序员可通过它们对该子程序的整体信息有一个较清晰认识,为准确地调用它们提供直接的帮助,与此同时,也为实现子程序的共享提供了必要的资料。

喜欢0 评分0
游客

返回顶部