文章责编:lipeng566
看了本文的网友还看了学历| 高考 中考 考研 自考 成考 外语| 四六级 职称英语 商务英语 公共英语 资格| 公务员 报关员 银行 证券 司法 导游 教师 计算机| 等考 软考
工程|一建 二建 造价师 监理师 咨询师 安全师 结构师 估价师 造价员 会计| 会计证 会计职称 注会 经济师 税务师 医学| 卫生资格 医师 药师 [更多]
2.子程序的调用和返回
主程序调用子程序使用指令CALL。根据CALL获得目标地址的方法,有四种调用方式:段内直接调用方式、段内间接调用方式、段间直接调用方式和段间间接调用方式。为了能正确返回,不管哪一种调用方式,都需要把断点(即CALL指令的下一条指令的地址)入栈保护。同时,CALL指令的类型必须与RET指令类型相匹配。
主程序调用程序方式分直接调用和间接调用两种类型,每种类型又分为段内调用和段间调用两种方式。
3.主程序和子程序间的信息交换
子程序中允许改变的数据叫参数。参数有入口参数和出口参数。主程序调用子程序之前必须向子程序提供一些参数,而子程序执行完毕后又要将执行结查提供给主程序使用。参数传递的方式一般有3种,即用寄存器传递参数、用参数表传递参数和用堆栈传递参数。不论采用哪种方式,调用程序和子程序都必须互相呼应。子程序需要在哪里取参数,主程序就应将参数送到哪里,并且要注意参数的先后顺序。
4.递归子程序和子程序嵌套
在子程序调用过程中,子程序调用该子程序本身称为递归调用。递归分直接递归和间接递归两种方式。直接递归子程序的结构为:
SBC PROC
┆
CALL SBC
┆
RET
SBC ENDP
间接递归于程序的格式:
SBC1 PROC
┆
CALL SBC2
┆
RET
SBC2 PROC
┆
CALL SBC1
┆
RET
设计递归子
程序的关键是防止出现死循环,注意脱离递归的出口条件。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |