- 1、本文档共59页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言设计 教案 第六章 子程序结构课件
第六章 子程序结构 把功能相对独立的程序段单独编写和调试,作为一个相对独立的模块供程序使用,就形成子程序。 子程序又称为过程,相当于高级语言中的过程和函数。 为了程序共享或模块化设计的需要,可以把一段公共语句序列设计成子程序或宏指令的形式。本章介绍子程序的设计方法。 6.1 子程序设计方法 6.1.1 过程定义伪操作 在汇编语言中用过程定义伪指令定义子程序。过程定义伪指令格式: 过程名 PROC 属型 …过程名 ENDP 子程序规范 一个完整的子程序,特别是供其他编程人员使用的子程序,必须附有一个详细说明: 子程序名(过程名) 子程序功能介绍 子程序的入口参数 子程序的出口参数 子程序内使用的寄存器(存储单元) 使用该子程序的范例 子程序的常见格式 ;子程序说明 ;子程序说明 subname proc ;具有缺省属性的subname过程 push ax ;保护寄存器:顺序压入堆栈 push bx ;ax/bx/cx仅是示例 push cx … ;过程体 pop cx ;恢复寄存器:逆序弹出堆栈 pop bx pop ax ret ;过程返回 subname endp ;过程结束 例1:用程序和子程序在同一个代码段的程序结构(子程序类型可缺省,注意END后必须跟主程序名) CODE SEGMENT MAIN PROC FAR … CALL SUB1 RET MAIN ENDP SUB1 PROC … RET SUB1 ENDP CODE ENDS END MAIN 例2:调用程序和子程序在不同段的程序结构(SUB2既被段间调用又被段内调用,必须显示说明是FAR属性。CALL最好显式说明是FAR属性,END后必须跟主程序名) CODE1 SEGMENTMAIN PROC FAR CALL FAR PTR SUB2 RET MAIN ENDP CODE1 ENDS CODE2 SEGMENT SUB1 PROC FAR CALL FAR PTR SUB2 RET SUB1 ENDP SUB2 PROC FAR RET SUB2 ENDP CODE2 ENDS 6.1.2 子程序的调用和返回 80X86的CALL和RET指令完成子程序的调用和返回功能。 注意PROC的属性要正确选择 设计含有子程序的源程序时,要密切注意堆栈的变化。这包括要注意一切与堆栈有关的操作。例如CALL调用类型和子程序定义类型的一致性,PUSH和POP指令的匹配,通过堆栈传递参数时子程序返回使用RET n指令等,以确保堆栈平衡,否则后果不可预料。为避免错误的产生,在一进入子程序后就应该把子程序所需要使用的寄存器内容保存在堆栈中,而在退出子程序前把寄存器中的内容恢复原状。 6.1.3 保存与恢复寄存器 为了保证调用程序的寄存器内容不被破坏,应在子程序开头保存它要用到的寄存器内容,返回前再恢复它们。通常用PUSH指令保存,用POP恢复。注意由于堆栈操作采用后进先出的规则,一般说来,弹出寄存器的顺序应该与压入时的相反。 6.1.4 子程序的变量传送 调用程序和子程序之间的信息传送称为参数传递。 可以通过给子程序传递参数使其更通用。常用的参数传递方法如下:通过寄存器传递;若调用程序和子程序在同模块(源程序)中,子程序可以直接访问模块中的变量;通过地址表传递参数地址;通过堆栈传递参数或参数地址。 6.1.4.1 通过寄存器传送变量 这种传递方式使用方便,适用于参数较少的情况。 decihex segment assume cs:decihex; 程序的主要部分main proc far repeat: call decibin ; 调用子程序decibin call crlf ; 调用子程序crlf call binihex ; 调用子程序binihex call crlf jmp repeat main endp ; 子程序decibindecibin proc near mov bx,0 ; BX中的数乘以10 xchg ax,bx mov cx,10d mul cx xchg ax,bx ; 子程序binihex binihex proc near mov ch,4 rotate: mov cl,4 rol
您可能关注的文档
- 六年级第五单元解决问题课件.ppt
- 环境工程概论考前辅导课件.ppt
- 机床控制技术讲义课件.ppt
- 关于逾期未认证的增值税发票处理办法课件.ppt
- 环境系统工程经典练习题课件.ppt
- 环境行政责任课件.ppt
- 汇编程序1-基本语法课件.ppt
- 环境规划 目 录课件.ppt
- 关系数据库标准语言SQL1课件.ppt
- 环境信息公开课件.ppt
- 2025年金肯职业技术学院单招职业适应性测试题库带答案.docx
- 2025年钦州幼儿师范高等专科学校单招综合素质考试题库完美版.docx
- 2025年钟山职业技术学院单招职业适应性考试题库参考答案.docx
- 2025年金华职业技术学院单招职业技能测试题库附答案.docx
- 2025年闽南理工学院单招职业技能测试题库审定版.docx
- 2025年闽南理工学院单招综合素质考试题库审定版.docx
- 2025年闽南理工学院单招职业倾向性考试题库汇编.docx
- 2025年闽南理工学院单招职业倾向性考试题库推荐.docx
- 2025年闽北职业技术学院单招综合素质考试题库1套.docx
- 2025年长沙轨道交通职业学院单招职业技能考试题库一套.docx
最近下载
- 建筑工程图集 16J914-1:公用建筑卫生间.pdf VIP
- 90后婚礼邀请函 婚礼邀请函制作软件.doc VIP
- 2025年初中升高中英语衔接测试试卷(Word版,含答案).docx VIP
- 2025重大事故隐患判定标准解读(可编辑课件).pptx VIP
- 起重机地面操作安全培训.pptx
- 《造纸行业绿色工厂评价规范》团体标准 征求意见稿.pdf VIP
- XX市XX医院无痛医院建设方案55.docx VIP
- 水源井及配套设施项目(含地下水专项评价)环评环境影响报告表(新版环评).doc VIP
- 译林版八年级英语上册一二单元检测.pdf VIP
- 16bj7-1楼梯平台栏杆及扶手.pdf VIP
文档评论(0)