- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 高级汇编语言和模块化程序设计 6.1 子程序 6.2 宏 6.3 多模块程序设计 6.4 结构和记录 6.1 子程序 1 堆栈 2 子程序的概念 3 子程序格式和有关指令 子程序的格式 调用与返回指令 4 子程序设计方法 5 子程序的嵌套与递归调用 6 子程序应用举例 1 堆栈 进栈/出栈指令 寄存器入栈 寄存器出栈 进栈/出栈指令 入栈指令 语句格式: PUSH R16|M16|SEG 功能:堆栈指针减2,将寄存器、段寄存器或存储器中的一个字数据压入堆栈。 出栈指令 语句格式: POP R16|M16|SEG 功能: 将栈顶元素弹出送至某一寄存器、段寄存器(除CS外)或存储器,堆栈指针加2。 寄存器入栈 格式: PUSHA 功能:所有16位寄存器(AX、BX、CX、DX、SI、DI、SP、BP)依次入栈,SP做相应的移动。指令执行后, ([SP])-16→ SP 格式: PUSHAD 功能:所有32位寄存器(EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBP)依次入栈,SP做相应的移动。指令执行后, ([SP])-32→ SP 寄存器出栈 格式: POPA 功能:栈顶内容依次出栈存于各16位寄存器(AX、BX、CX、DX、SI、DI、SP、BP)中,同时,SP做相应的移动。指令执行后, ([SP])+16→ SP 格式: POPAD 功能:栈顶内容依次出栈存于各32位寄存器(EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBP)中,同时, SP做相应的移动。指令执行后, ([SP])+32→ SP PUSHA和POPA的执行图示 2 子程序的概念 在程序设计中,我们会发现一些多次无规律重复的程序段或语句序列。解决此类问题一个行之有效的方法就是将它们设计成可供反复调用的独立的子程序结构,以便在需要时调用。在汇编语言中,子程序又称过程。 调用子程序的程序称为主调程序或主程序。 子程序的特点 1、功能独立 2、通用性 3、可浮动性:子程序可放在存储区任意地址 4、可递归性:子程序调用其自身 5、可重入性:子程序可被中断,在中断处理中又被中断服务程序调用,且都能提供正确结果。 子程序的优点 1、简化程序设计过程,节省设计时间 2、缩短程序长度,节省汇编时间和程序执行空间 3、增加程序可读性,便于修改与调试 4、方便程序模块化、结构化和自顶向下程序设计方法 调用与返回指令 过程的正确执行由子程序的正确调用和返回保证。 主程序中, 通过CALL指令完成子程序调用,将CALL指令的下一条地址入栈保存,并修改IP为子程序的入口地址, 即转子程序处执行。 子程序中, 通过RET指令完成子程序的返回, IP为栈顶出栈的内容, 即转到主程序中调用语句的下一条语句处执行。 1)段内调用与返回 2)段间调用与返回 调用与返回指令 1)段内调用与返回 * 调用格式 CALL [NEAR PTR] 子程序名 功能: PUSH (IP), (IP)?子程序入口的偏移地址 CALL WORD PTR 通用寄存器或存储器 功能: PUSH(IP) , (IP)?(IP)+D16 注意: 定义子程序的要求子程序是NEAR型, 且与调用程序定义在同一代码段内 * 返回 功能 RET (IP)?POP( ) RET EXP (IP)?POP( ), (SP)?(SP或ESP)+D16 调用与返回指令 2)段间调用与返回 * 调用格式 CALL [FAR PTR] 子程序名 功能: PUSH(CS), PUSH (IP), (IP)?子程序入口的偏移地址 CALL DWORD PTR 存储器 功能:PUSH(CS), PUSH(IP), (IP)?(EA) (CS) ? (EA+2或4) * 返回 RET 功能:(IP)?POP(), (CS)?POP() RET 表达式 功能:(IP)?POP(), (CS)?POP() (SP或ESP)?(SP或ESP) +D16 子程序的调用与返回 题子程序可以具有多个出口 HTOASC proc ;将AL低4位表达的一位16进制数转换为ASCII码 and al,0fh cmp al,9 jbe htoasc1 add al,37h ;是0AH~0FH,加37H ret ;子程序返回 htoasc1: add al,30h ;是0~9,加30H ret ;子程序返回 HTOASC endp 子程序的格式
您可能关注的文档
最近下载
- 电动叉车安全风险点告知牌.docx VIP
- AQL抽样标准培训.pptx VIP
- 2025广东中山市东凤镇污水处理有限责任公司管网维护人员招聘6人笔试模拟试题及答案解析.docx VIP
- 家具设计与工艺ppt-板式家具结构与生产工艺.pdf VIP
- 2025河北建材职业技术学院招聘106人笔试参考题库附答案解析.docx VIP
- 部编版语文四年级下册第四单元大单元教学设计核心素养目标.pdf VIP
- 初中数学常用二级结论知识点总结.doc VIP
- 我的师德小故事 .docx VIP
- 主要股东或出资人信息及投标人基本情况表模板.docx VIP
- 新型独脚金内酯类似物的结构设计、合成及对水稻生长调控的多维度探究.docx
初级会计持证人
专注于经营管理类文案的拟写、润色等,本人已有10余年相关工作经验,具有扎实的文案功底,尤善于各种框架类PPT文案,并收集有数百万份各层级、各领域规范类文件。欢迎大家咨询!
文档评论(0)