- 1、本文档共40页,可阅读全部内容。
- 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 ⑵调用程序与子程序不在同一代码段中,子程序
您可能关注的文档
- 税法所得税练习题及答案解析..doc
- 稳定同位素比例质谱仪(IRMS)的原理和应用..doc
- 稻米酶法制取超高纯度麦芽糖浆工艺研究..doc
- 空分装置试桩检测方案..doc
- 空冷学习资料..doc
- 科学社会主义..doc
- 空压机余热回用..doc
- 空压机技术规范..doc
- 空压机技术资料..doc
- 空压机节能改造..doc
- GB/T 18282.1-2025医疗保健产品灭菌 化学指示物 第1部分:通则.pdf
- 《GB/T 18282.1-2025医疗保健产品灭菌 化学指示物 第1部分:通则》.pdf
- 市交通运输局局长2025年专题生活会对照“四个带头”含落实意识形态工作责任制方面个人对照检查发言提纲与乡镇(街道)围绕“四个带头”主题领导班子检视问题整改方案【2篇文】.docx
- 2025年市红十字会党支部书记、团市委党支部书记组织生活会“四个带头”个人对照检查发言材料【含意识形态工作责任制落实方面】2篇文.docx
- 市水利局党支部书记2025年组织生活会对照“四个带头”个人发言材料(含意识形态工作责任制落实方面)与市委领导班子围绕“四个带头”生活会查摆问题整改方案2篇文.docx
- 检察院领导班子2025年专题生活会对照“四个带头”检查材料与市民族宗教事务局党组书记、局长围绕“四个带头”生活会对照检查材料【含反面典型案例剖析】2篇文.docx
- 对照“四个带头”重点方面含反面典型案例查摆的问题解析生活会个人对照检查发言稿与市交通运输局局长“四个带头”含落实意识形态工作责任制方面个人对照检查发言提纲【2篇文】.docx
- 市水利局党支部书记2025年组织生活会对照“四个带头”个人发言材料(含意识形态工作责任制落实方面)与纪检委员“四个带头”方面个人对照检查材料【2篇文】.docx
- 2025年市中级人民法院领导班子、市投资促进局党支部书记对照“四个带头”方面生活会检视剖析材料(含典型案例剖析、意识形态)2篇文.docx
- 医院党委领导班子2025年检视问题整改落实方案与对照“四个带头”方面含反面典型案例查摆的问题解析生活会个人对照检查发言稿【2篇文】.docx
最近下载
- 2022_2023 学年度泉州市初中教学质量监测 (二)英语试卷.pdf VIP
- 无人机技术助力油气管道巡检.pptx
- 2022-2023学年度泉州市初中教学质量监测答案.doc VIP
- 人教版(川教版)二年级(含上、下册)生命生态安全教学设计附教学计划.pdf VIP
- 2025届江苏省泰州市多校高三7月联合统一调研模拟考试数学试卷.doc VIP
- 工业分析 教学课件 作者 李广超 编 3石油产品分析.ppt
- 三副见习记录簿附页.doc
- 2022-2023学年度泉州市初中教学质量监测.doc VIP
- 人教部编语文二年级下册全册同步类文阅读含答案.docx VIP
- 数学丨江苏省泰州中学2025届高三1月模拟考试一(泰中一模)数学试卷及答案.pdf VIP
文档评论(0)