111111
精灵王
精灵王
  • 注册日期2010-12-08
  • 发帖数640
  • QQ
  • 火币1103枚
  • 粉丝120
  • 关注75
  • 社区明星
阅读:4151回复:0

经典汇编语言教程:7.5.4 子程序的可见性和首尾宏操作

楼主#
更多 发布于:2013-01-25 18:02

子程序的可见性(Visibility)决定该子程序对其它模块是否可用。它共有三个属性值:PRIVATE、PUBLIC和EXPORT。
PUBLIC属性是子程序标准的缺省属性,但该缺省属性可以用伪指令OPTION PROC来修改。EXPORT属性意味着该子程序是一个“远”的、具有PUBLIC属性的子程序,并要求连接程序在生成可执行文件时把其入口地址放入导出入口地址表中。
例如:
OPTIONPROC : PRIVATE ;说明子程序的可见性为:PRIVATE
OPTIONPROC : EXPORT ;说明子程序的可见性为:EXPORT

7.5.5 子程序的起始和结束操作


当程序员想用自己定义的宏来替代缺省的“起始”和“结束”的代码段时,可用下列说明语句来实现:
OPTIONPROLOGUE : MacroName1
OPTIONEPILOGUE : MacroName2
PROLOGUE和EPILOGUE分别指定MacroName1和MacroName2为“起始”和“结束”代码段的宏名。
汇编程序对用户定义的宏MacroName1和MacroName2的形式有较严格的规定,要求宏的定义形式如下:
MacroName MACRO ProcName, flags, argbytes, localbytes, <reglist>,userparms:VARARG
该宏定义的每个参数都有详细的说明,感兴趣的读者可看有关技术资料或MASM6.11中的帮助,详细的说明在此从略,但建议使用缺省的宏。
如果想取消当前指定的宏名,而恢复使用缺省的“起始”和“结束”代码段的宏名,那么,可用下列说明语句,即指定二个缺省的宏名PrologueDef和EpilogueDef。
OPTIONPROLOGUE : PrologueDef
OPTIONEPILOGUE : EpilogueDef
若程序员不要汇编程序自动产生“起始”和“结束”代码,则可用NONE来代替说明语句中的宏名,即:
OPTIONPROLOGUE : NONE
OPTIONEPILOGUE : NONE

喜欢0 评分0
游客

返回顶部