(17)--4.10 子程序设计举例.ppt

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

4汇编语言程序设计4.10子程序设计举例

§4.10子程序设计举例把功能相对独立的程序段单独编写和调试,作为一个相对独立的模块供程序使用,就形成子程序子程序可以实现源程序的模块化,可简化源程序结构,可以提高编程效率。子程序设计要利用过程定义伪指令参数传递是子程序设计的重点和难点子程序可以嵌套;一定条件下,还可以递归和重入

§4.10子程序设计举例过程名 proc[near|far] ...过程名 endp过程名(子程序名)为符合语法的标识符NEAR属性(段内近调用)的过程只能被相同代码段的其他程序调用FAR属性(段间远调用)的过程可以被相同或不同代码段的程序调用

§4.10子程序设计举例子程序设计与应用应注意的问题(1)现场保护与恢复:转入子程序之前,CPU有关寄存器和内存有关单元是父程序的工作现场,在调用子程序前要设法保护这个现场。保护现场的方式很多,多数情况是在调用子程序后由子程序前部操作完成现场保护,再由子程序后部操作完成现场恢复。现场信息可以压入栈区或传送到不被占用的存储单元,也可以避开这些有用的寄存器或存储单元,达到保护现场的目的。恢复现场是保护现场的逆操作。当用栈区保护现场时,还应注意恢复现场的顺序不能搞错,否则不能正确地恢复父程序的现场。

§4.10子程序设计举例(2)参数传递:指主程序与子程序之间相关信息或数据的传递。参数传递方式有寄存器传递、用内存单元传递或用栈区传递。传递参数需要父程序与子程序默契配合,否则会产生错误结果。(3)子程序说明:由于子程序有共享性,可被其它程序调用,因此,每个子程序应有必要的使用注释,它包括:①子程序名;②功能、技术指标(如执行时间等);③占用寄存器和存储单元;④入口、出口参数;⑤嵌套哪些子程序。

§4.10子程序常见结构subname proc ;具有缺省属性的subname过程 pushax ;保 :顺序压入堆栈 pushbx ;ax/bx/cx仅是示例 pushcx … ;过程体 popcx ;逆序弹出堆栈 popbx popax ret ;过程返回subname endp ;过程结束

§4.10子程序设计举例dpcrlf proc ;过程开始 pushax ;保护寄存器AX和DX pushdx movdl,0dh ;显示回车 movah,2 int21h movdl,0ah ;显示换行 movah,2 int21h popdx ;恢复寄存器DX和AX popax ret ;子程序返回dpcrlf endp ;过程结束实现回车换行无参数传递子程序

§4.10子程序的参数传递入口参数(输入参数):主程序提供给子程序出口参数(输出参数):子程序返回给主程序参数的形式:①数据本身(传值)②数据的地址(传址)传递的方法:①寄存器②变量③堆栈

§4.10子程序设计举例求校验和子程序计算数组元素的“校验和”校验和是指不记进位的累加入口参数:CX=元素个数,DS:BX=数组的段地址:偏移地址出口参数:AL=校验和

§4.10子程序设计举例……movbx,offsetarray ;BX←数组的偏移地址movcx,count ;CX←数组的元素个数callchecksuma ;调用求和过程movresult,al ;处理出口参数……主程序

§4.10子程序设计举例子程序Checksumaproc xoral,al ;累加器清0suma: addal,[bx] ;求和 incbx ;指向下一个字节 loopsuma retChecksumaendp endstart

2024/4/912小结子程序结构较为复杂,本节只是抛砖引玉,还要深入学习才能较好掌握。参数传递是子程序设计的一个难点,可以借助于寄存器中进行传值或传址,也可以在主程序与子程序之间约定同一个变量进行参数传递,还可以利用堆栈来传递参数,需要根据实际情况灵活运用。

文档评论(0)

177****2883 + 关注
实名认证
内容提供者

热爱教育,专注于教育领域创作与分享,让我们共同进步。

1亿VIP精品文档

相关文档