- 1、本文档共129页,可阅读全部内容。
- 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.2 子程序参数传递 6.3 嵌套与递归子程序 6.4 宏 指 令 6.5 宏指令库 6.6 重复伪指令 6.7 条件伪指令 6.1 子程序结构及设计方法 6.1.1 含有子程序的程序结构 在汇编语言中用过程定义伪指令定义子程序。过程定义伪指令格式: 过程名 PROC 属型 … 过程名 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属性) CODE1 SEGMENT MAIN 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 END MAIN 6.1.2 设计子程序时应注意的问题 1.子程序说明 2.寄存器的保存与恢复 3.密切注意堆栈状态 6.2 子程序参数传递 可以通过给子程序传递参数使其更通用。常用的参数传递方法如下:通过寄存器传递;若调用程序和子程序在同模块(源程序)中,子程序可以直接访问模块中的变量;通过地址表传递参数地址;通过堆栈传递参数或参数地址。 6.2.1 通过寄存器传递 这种传递方式使用方便,适用于参数较少的情况。 例1.把BX中的16位二进制数转换成十进制并显示在屏幕上。 STASG SEGMENT DW 32 DUP(?) STASG ENDS CODE SEGMENT ASSUME CS:CODE MAIN PROC FAR MOV BX,162EH CALL TERN MOV AX,4C00H INT 21H MAIN ENDP TERN PROC ;二→十并显示。 MOV CX,10000 CALL DEC_DIV ;转换万位数 MOV CX,1000 CALL DEC_DIV ;转换千位数 MOV CX,100 CALL DEC_DIV ;转换百位数 MOV CX,10 CALL DEC_DIV ;转换十位数 MOV CX,1 CALL DEC_DIV ;转换个位数 RET TERN ENDP DEC_DIV PROC ;CX中为十进制的位权 MOV AX,BX MOV DX,0 DIV CX ;商为转换后的一位十进制数 MOV BX,DX MOV DL,AL ADD DL,30H ;转换成ASCII码 MOV AH,2 ;显示 INT 21H RET DEC_DIV ENDP CODE ENDS END MAIN 6.2.2 同模块中的子程序可直接访问模块中的变量 若调用程序和子程序在同模块中,子程序可以直接访问模块中的变量。 例2.实现数组求和功能。要求数组求和(不考虑溢出情况)由子程序实现,其数组元素及结果均为字型数据。见程序6.4。 STACKSG SEGMENT STACK STK‘ DW 32 DUP(S) STACKSG ENDS DATA SEGMENT ARY DW 1,2,3,4,5,6,7,8,9,10 COUNT DW ($-ARY)/2 ;数组元素个数 SUM DW ? ;数组和的地址 DATA ENDS CODE1 SEGMENT MAIN PROC FAR ASSUME CS:
您可能关注的文档
- 第八章 商业银行资产负债管理.ppt
- 第八章一些特殊的图2.ppt
- 第八章人格与心理健康.ppt
- 第八章体育活动和健康.ppt
- 第八章刘禹锡柳宗元.ppt
- 第八章商标、商号的翻译.ppt
- 第八章各国文化差异对谈判的影响31.ppt
- 第八章安全生产统计分析.ppt
- 第八章图像压缩与编码.ppt
- 第八章排放测量和排放法规.ppt
- 2025年市总工会党组书记、市委组织部部长生活会“四个带头”个人对照检查发言材料2篇(含上年度整改+个人情况、个人事项+典型案例).docx
- 2025年部编版小学六年级下册《道德与法治》第四单元 让世界更美好第10课 我们爱和平教学课件.pptx
- 公司领导班子2025年围绕“四个带头”主题检视问题整改落实方案与组织生活会批评意见(20条)2篇文.docx
- 教育系统党组班子2025年对照“四个带头”含意识形态、以典型案例举一反三解析检视材料【2篇文】.docx
- 2025年国有企业领导班子、学校副校长生活会“四个带头”方面对照个人检视发言材料2篇文(附:上年度整改情况、典型案例解析).docx
- 2025年生活会“四个带头”个人对照检查材料2篇文(含对其他领导批评意见,个人公开事项申报、意识形态).docx
- 2025年国有企业党委书记、领导班子生活会“四个带头”方面对照检查发言材料2篇文(上年度整改情况).docx
- 乡镇领导班子、市委组织部常务副部长2025年对照“四个带头”含违纪行为为典型案例的剖析与反思检视剖析材料{2篇文}.docx
- 市委社会工作部2025年生活会领导班子对照检视发言材料2篇文(含以案为鉴,深刻反思存在问题、反面典型案例举一反三解析、其他需要说明情况).docx
- 2025年民主生活会、组织生活会批评意见(20条)与市直单位领导班子“四个带头”对照检查材料【含上年度查摆问题整改落实情况】2篇文.docx
文档评论(0)