- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章、子程序结构课件
第14讲:子程序设计方法;6.1.1、过程(子程序)定义格式
1.简化的过程定义格式如下:
Procname proc [attributes]
……
ret 或 ret 数值表达式exp
Procname endp
attributes 只能取near(默认)或far
(1).near属性?调用程序和子程序在同一代码段中(只能段内调用)
(2).far属性?调用程序和子程序可以不在同一代码段中(段内和段间调用都可以)
2.增强功能的过程定义格式如下:
Procname proc [attributes] [uses register list] [parameters field ]
……
ret 或 ret 数值表达式exp
Procname endp
格式要求?三个可选项之间用一个或多个空格或制表符分开;属性域和寄存器列表域必须位于第一行;参数域可部分或全部位于第一行,若参数域部分或全体位于第二行、第三行时,除最后一行以外必须以“,”结束 ;;[1].属性域(attributes field)由以下几项组成(各项顺序严格不变):
distance language type visibility prologue //各部分用空格分开
distance?①.取值为“near”或“far”,near表明该过程只能被段内调用,far表明该过程可被段内或段间调用;②. 在简化段定义中若已指定存储模型则不必指定该属性值;汇编程序将自动把存储模型为tiny、small、compac、flat的代码段中所有过程指定为near,而把存储模型为medium、large、huge的代码段中所有过程指定为far;③.若在定义代码段时没指定存储模型,则用户自行指定该属性,其默认为near
language type?若该过程作为某高级语言程序的子过程,则指明高级语言种类;如:pascal ,basic,fortran,C等;
注意?若定义了参数字段,并且在存储模型中没有指定高级语言,则不可省;
Visibility?指明过程的可见性,取值为”private”或”public”(默认值);
private表明该过程仅在当前源文件(模块)中可见;
public表明该过程在其它文件(模块)中也可见;
Prologue?是一个宏名,允许用户利用宏来控制过程的出入口代码;
[2].保存和恢复的寄存器列表字段(uses register list)
格式? uses ax bx 各寄存名之间用 “空格”隔开,告知编辑器在本过程的入口处按所写顺序入栈保存各寄存器,出口处反序出栈恢复各寄存器,编译器自动补充出入口寄存器恢复与保存代码; ;[3].形参列表字段(parameters field) :
格式?参数名1:参数类型[,参数名2:参数类型,…,参数名n:参数类型]
ASM将自动把堆栈的[BP+4]、[BP+5]、 …等区域视为形参区域,实例如下:
形参定义为:par1:word, par2:word, par3:word
局部变量定义为:var1:word, var2[2]:word, var3:byte, var4:byte ;上图表明子过程调用时堆栈中参数的入栈次序:C语言是先入栈的实参传给了后定义的形参,而其它语言是先入栈的实参传给先定义的形参;
主调过程与子过程位于同一代码中,无论子过程是NEAR还是FAR属性,当采用下列格式:
CALL FAR PTR 子过程名?远调用,CS和IP依次入栈为返回地址;
CALL NEAR PTY 子过程名?属于近调用,仅IP入栈为返回地址;
CALL 子过程名?属于近调用,仅IP入栈为返回地址;
主调过程与子过程位于不同代码段或不同模块时,子过程的属性只能是FAR属性,主调过程的调用只能采用下列格式:
CALL FAR PTR 子过程名?远调用,CS和IP入栈为返回地址;
使用时主调程序在调用前必须把实参依次入栈,子过程在汇编时自动替换为[BP+n]形式; ;2.子过程中局部变量定义:
调用时在栈中建立空间,退出时释放,在子过程的所有代码前按如下格式定义局部变量?
LOCAL 变量名1:类型,变量名2:类型,数组名1[COUNT]:类型
各变量类型可以是BYTE、WORD、DWORD、FWORD、QWORD、TWO
您可能关注的文档
- 参考:工程工程量计算课件.ppt
- 蔡璐 第一章 总论 新课件.ppt
- VB总复习(2012年)课件.ppt
- 餐饮食品监管执法文书-王鹏课件.ppt
- 操作系统课后作业课件.ppt
- 仓储成本核算课件.ppt
- 餐饮定价策略课件.ppt
- VB总复习2011课件.ppt
- 仓库保管员--9仓储管理现代化课件.ppt
- 操作系统 期末总复习课件.ppt
- 上海海洋大学《海洋环境分析技术》课件-21化学发光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-20分子荧光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-22色谱分离过程.pdf
- 上海海洋大学《海洋环境分析技术》课件-25气相色谱仪与固定液.pdf
- 上海海洋大学《海洋环境分析技术》课件-24色谱定性定量方法.pdf
- 上海海洋大学《海洋环境分析技术》课件-26气相色谱检测器.pdf
- 上海海洋大学《海洋环境分析技术》课件-29液相色谱固定相与流动相.pdf
- 上海海洋大学《海洋环境分析技术》课件-27气相色谱分离条件的选择.pdf
- 上海海洋大学《海洋环境分析技术》课件-28液相色谱仪器与类型.pdf
- 上海海洋大学《海洋环境分析技术》课件-3 原子光谱和分析光谱.pdf
文档评论(0)