1 / 37
文档名称:

第章 子程序设计9(强烈推荐).ppt

格式:ppt   页数:37
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第章 子程序设计9(强烈推荐).ppt

上传人:gyzhluyin 2015/11/3 文件大小:0 KB

下载得到文件列表

第章 子程序设计9(强烈推荐).ppt

相关文档

文档介绍

文档介绍:第六章子程序结构
过程定义伪操作
子程序的调用与返回
保存与恢复寄存器
子程序的参数传送
子程序的嵌套与递归
一、调用程序与子程序
子程序:在许多应用程序中,常常需要多次使用某功能的指令序列。这时,为了减少重复编写程序,节省内存空间,把这一功能的指令序列组成一个相对独立的程序段。在程序运行时,如果需要使用这个给定的功能,就转移到这个独立的程序段,待这个独立的程序段指令序列执行完后,又返回到原来位置继续运行程序。我们把这个相对独立的程序段就叫子程序或过程。
调用程序:编制程序时,按需要转向子程序,称为子程序调用,或称为过程调用。调用子程序的程序称为调用程序或主程序。主、子程序是相对而言的。但子程序一定是受调用程序或主程序调用的。子程序定义的位置可以放在主程序的前面或后面。
二. 过程定义伪操作
过程名 PROC NEAR ( FAR )
过程名 ENDP
(1)NEAR属性:调用程序和子程序在同一代码段中,
可省略。(段内调用)
(2)FAR属性:调用程序和子程序不在同一代码段中。
(段间调用)
.
.
.
code1 segment
main proc far
……
call far ptr subp
……
ret
main endp
code1 ends
code2 segment
subp proc far
……
ret
subp endp
code2 ends
段间调用和返回
code segment
main proc near
……
call subp
……
ret
main endp
subp proc near
……
ret
subp endp
code ends
段内调用和返回
segx segment
subt proc far
……
ret
subt endp
……
call subt
……
segx ends
segy segment
……
call far ptr subt
……
segy ends
同一个子程序
可以被段内调
用,也可以段
间调用
(1)CALL 子程序调用指令:隐含使用堆栈保存返回地址

指令格式:
CALL DST ;其中DST为过程的目标地址(即过程名)。
指令功能:
把CALL指令的下一条指令地址(称为返回点或断点) 推入堆栈保存,然后转到目标地址(DST)。
CALL指令可以在段内、段间调用,寻址方式分为直接和间接两种。
三. 子程序的调用与返回指令
段内直接近调用:CALL DST
执行操作:
(SP) ←(SP) - 2
( (SP)+1,(SP) ) ←(IP)
(IP) ← DST(实际操作是把从指令中得到的距目标过程相对偏移量(最大为32K字节)加到指令指针IP上(得到子程序的入口地址),实现过程调用。)
段内间接近调用:CALL DST
执行操作:
PUSH IP
(IP) ←(EA)
DST给出子程序的入口地址(子程序为near属性)
比如:CALL subp
DST给出寄存器或存储单元的内容(转向地址)
比如: CALL word ptr [bx]
(SP)→(IP)
段间直接远调用:CALL FAR PTR DST
执行操作: PUSH CS
PUSH IP
(IP) ← DST偏移地址
(CS) ← DST段地址
段间间接远调用:CALL FAR PTR DST

执行操作: PUSH CS
PUSH IP
(IP) ←(EA)
(CS) ←(EA+2)
(IP)
(CS)
(SP)→
DST给出子程序的入口地址(子程序为far属性)
比如:CALL far ptr subp
(2)RET 返回主程序指令: 属于无条件转移指令。可以在段内或段间返回。
段内近返回:RET
执行操作: POP IP
段内带立即数近返回:RET EXP
执行操作: POP IP
(SP) (SP)+EXP
段间远返回:RET(F)
执行操作: POP IP
POP CS
段间带立即数远返回:RET EXP
表达式
(SP)→(IP)
(SP)→
。。。
(SP)→(SP)+EXP
例:带立即数返回
(SP)
堆栈段
code segment
main proc far
Start:
push ds
Sub ax,ax
push ax
……
push ax
push bx
push cx
call sub
……
ret
main endp
sub proc near
……
ret 6
sub endp
code ends
end start
(IP)
(cx)

最近更新

2026年大学廉政知识测试题word 14页

2026年天津商务职业学院单招综合素质考试模拟.. 44页

2026年安徽扬子职业技术学院单招职业适应性测.. 45页

2026年宝鸡中北职业学院单招综合素质考试模拟.. 42页

2025海南省地质环境监测总站招聘事业编制人员.. 36页

2025湖南邵阳绥宁县政务服务中心招聘见习大学.. 37页

2026年工贸试题-考试题库附完整答案【夺冠系列.. 42页

2025黑龙江牡丹江医科大学第二次招聘事业单位.. 37页

2026年东营考保安考试题库(培优) 15页

2026年会计专业技术资格考试题库200道及答案【.. 89页

2026年党员党纪知识测试题(名校卷) 17页

2026年兰州资源环境职业技术大学单招职业技能.. 43页

2026年江西工商职业技术学院单招职业倾向性测.. 43页

2026年注册会计师考试财务成本管理真题100道含.. 49页

2026年叉车操作人员考试题库及参考答案一套 15页

2026年消毒技术题库【能力提升】 39页

2026年演出经纪人资格证考试题库200道及答案【.. 78页

2026年疾病控制题库含完整答案【网校专用】 41页

2026年自考专业(会计)考试题库200道附答案(黄.. 85页

2026年安全生产专业考试题库及一套参考答案 27页

2026年锅炉操作工考试题库200道带答案(基础题.. 74页

2026年山西信息职业技术学院单招职业倾向性测.. 45页

2026年安徽城市管理职业学院单招职业适应性考.. 37页

2025年湖南省建设工程工程量清单计价办法(新).. 51页

2025年江西信息应用职业技术学院单招职业适应.. 127页

2025年江西信息应用职业技术学院单招职业倾向.. 73页

喝酒给老婆的检讨书 6页

vae乳液低温发泡工艺 29页

《口蹄疫》ppt课件 42页

自然条件对城市的影响 48页