- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章子程序设计和DOS功能调用教程
第4章子程序设计和DOS功能调用
4.1 子程序设计
子程序——过程——具有特定功能的程序模块
子程序是提高程序设计效率的良好手段,也为模块化设计提供了很好的基础。
4.1.1 过程调用和返回指令
1.call指令——过程调用指令 格式: call 目的操作数 具体格式同jmp
注意:在功能上CALL指令与JMP指令都是要转换到新的位置执行程序,所不同的是,JMP不保护断点,CALL要保护断点。这里的断点是指CALL指令后继第一条指令的起始地址。当执行CALL指令时,CS:IP正指向其后继第一条指令——断点,CALL指令保护之,以便执行完过程后能正确返回调用主程序继续原来程序的执行。可在DEBUG.EXE下观察到CALL保护断点的情况。
①段内直接调用 call 过程名(near型) 操作:堆栈←ip,ip←ip+相对位移量(汇编结果),ip指向目标 ②段内间接调用 子程序的起始地址(偏移地址)事先存放在通用寄存器或内存单元中 call bx call cx call word ptr [bx+di+2]操作:堆栈←ip(断点偏移地址),ip←目标地址③段间直接调用call 过程名(far型)操作: 堆栈←[cs:ip](断点地址),[cs:ip]←目标地址④段间间接调用子程序的起始地址(逻辑地址:偏移地址)存放在四字节的地址指针中 call dword ptr[bx]操作: 堆栈←[cs:ip](断点地址),[cs:ip]←目标地址2. ret指令——过程返回指令格式: ret ret n(弹出值为偶数) 功能: ①ret 指令将控制从一个过程返回到调用该过程的call指令之后的那条指令(调用程序的断点),段内或段间返回都用RET.
ret完成由堆栈恢复断点的功能 : 段内返回:ip←断点偏移量 段间返回:ip←断点偏移量 cs←断点段地址 ②带弹出值的返回指令,其弹出值只能是偶数,在从堆栈中弹出返回地址后,再次修改堆栈指针sp的值: sp←sp+n 以废除调用程序装入栈中的参数恢复调用之前的栈顶。把执行call指令前压入堆栈的参数弹出丢去.
注意:以标号开始,以RET结束的程序段均可以视为子程序,用CALL调用:
data segment
pr1 db abcdefg,0dh,0ah,24h
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
call disp
mov ah,9
lea dx,pr1
int 21h
mov ah,4ch
int 21h
disp: lea dx,pr1
mov ah,9
int 21h
ret
code ends
end start
4.1.2 过程定义语句 格式: 过程名 proc [near/far]
....
ret
....
ret
过程名 endp说明:①过程名不能省略,proc和endp前的过程名必须相同②near————近调用过程,即仅能被同一逻辑代码段的程序调用. far——远调用过程,即能被其他逻辑代码段的程序调用. 如果无类型说明,隐含near.③过程调用与返回主程序用call命令调用过程,执行完后,在过程中执行ret返回主程序,所以在过程中,一般最后一条语句均为ret指令④过程的嵌套与递归——汇编程序也允许过程的嵌套调用和递归调用过程嵌——在过程中调用过程过程递归——过程调用自己这两种调用方式都是依靠CALL指令和RET指令配合实现的。
子程序的编写方法1.子程序的定义⑴调用程序与子程序在同一代码段中,子程序的类型为near code segment assume ..... main proc far ..... call sub ..... ret main endp sub proc near .... ret sub endp code ends ⑵调用程序与子程序不在同一代码段中,子程序必须是far型c
您可能关注的文档
- 第3章确定性推理-1教程.pptx
- 桑拿英语及常用口语.doc
- 第3章确定性推理-2-Final教程.pptx
- 桥梁结构计算绘图一体化技术研究.doc
- 案例3.PPT教学案例.ppt
- 第3章离心压缩机教程.pptx
- 桩工机械检验报告.doc
- 梁模板(扣件钢管架支撑)2016-04-10 16:59:00.doc
- 案例:探索时装秀最新风尚.pptx
- 桥梁钢筋笼吊装方案.doc
- 护理学相关知识复习测试卷共三套.doc
- 护理学相关知识复习试题含答案(3套).doc
- 2025届高考语文复习:补写句子 课件.pptx
- 气压带和风带对气候的影响(第1课时)(教学设计).docx
- 气压带和风带对气候影响教学设计2024-2025学年高中地理人教版(2019)选择性必修1.docx
- 《故都的秋》课件 2024-2025学年统编版高中语文必修上册.pptx
- 《屈原列传》课件 2024-2025学年统编版高中语文选择性必修中册.pptx
- 《巫溪家乡文化》课件-2024-2025学年高一语文同步备课课件(统编版必修上册).pptx
- 《苏武传》课件 2023-2024学年统编版高中语文选择性必修中册.pptx
- 郑州中控ZKTime8.3 WEB考勤软件培训文档.pptx
最近下载
- 第20课 走进大自然(课件)-2024冀美版美术二年级上册.pptx
- 05系列建筑标准设计05N6图集.pptx
- Module 3(复习课件)五年级英语上册(外研版三起).pptx
- 中亚(48张ppt).ppt
- EPS7100工业以太网交换机安装说明书V1.01.pdf VIP
- 《中国工程企业海外合规经营与风险防范》微解.ppt
- 2024年国家开放大学《形势与政策》大作业:中华民族现代文明有哪些鲜明特质?建设中华民族现代文明的路径是什么?[附4份答案]供参考.docx
- 洒水车租赁协议书(标准版).docx VIP
- 3119005234赖宇轩《路由与交换技术》实训课实验报告2022 (2).docx VIP
- 基于决策树的可疑交易账户预警模型.pdf VIP
文档评论(0)