汇编语言教学课件8.ppt

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

第八章 子程序设计 8.1 子程序的引出 8.2 子程序(过程)定义伪指令 8.3 调用和返回指令 8.4 子程序设计方法 8.4.1 现场的保护和恢复 8.4.2 子程序说明文件 8.4.3 主程序与子程序之间的参数传递 8.5 子程序嵌套 8.6 递归子程序 8.8 程序的连接 8.1 子程序的引出 在我们编写解决实际问题的程序时,往往会遇到多处使用相同功能的程序段, 使用该程序段的唯一差别是对程序变量赋不同的值,例如计算:  S=√2X+√3Y+√150   计算上述函数需要多次使用开方运算,如果每次用到开方运算就编写一段开方程序,那么开方程序在程序中会多次出现,不仅书写麻烦,容易出错,编辑、汇编它时,也会花费较多时间。同时,由于冗长,占用内存也较多。如果把多次使用的功能程序编制为一个独立的程序段,每当用到这种功能时,就将控制转向它,完成功能后再返回到原来的程序,这就会大大减少编程工作量。 8.1 子程序的引出 8.1 子程序的引出 8.2 子程序(过程)定义伪指令 子程序定义伪指令所定义的子程序的一般格式:  PN PROC[NEAR]/[FAR] ;说明过程开始 : ;过程体 : PN ENDP ;说明过程结束 8.3 调用和返回指令 1.调用分类 (1)段内调用与段间调用(p127)  (2)直接调用与间接调用(p127) 2.调用指令 指令汇编格式:CALL PROCNAME/REGNAME/MEMLABEL 操作:(1)段内调用: SP←SP-2 (SP+1,SP)←IP IP←OFFSET PROCNAME或REGNAME或(MEMLABEL) (2)段间调用: SP←SP-2 (SP+1,SP)←CS CS←SEG PROCNAME或(MEMLABEL+2,MEMLABEL+3) SP←SP-2 (SP+1,SP)←IP IP←OFFSET PROCNAME或(MEMLABEL,MEMLABEL+1) 受影响的寄存器:没有 调用指令举例 1、段内调用: a. 段内直接调用 CALL PROC_N b. 段内寄存器间接调用 CALL SI c. 段内存储器间接调用 CALL MEM_W CALL WORD PTR[BX] CALL WORD PTR[SI+DISP] CALL WORD PTR[BX+DISP] CALL WORD PTR[BX+SI+DISP] 调用指令举例 2、段间调用: a. 段间直接调用 CALL FAR PTR PROC_N c. 段间存储器间接调用 CALL DWORD PTR MEM_D CALL DWORD PTR[BX] CALL DWORD PTR[SI+DISP] CALL DWORD PTR[BX+DISP] CALL DWORD PTR[BX+SI+DISP] 调用的类型与过程定义的类型必须一致; 由于在转返过程中要使用堆栈保存断点,以备返回,因此在程序设计中必须要有堆栈段。同时注意主程序、子程序应使用统一堆栈,否则转返过程不易控制。堆栈最好放在主程序中,其大小应由嵌套层次、传递参数等因素决定。 3.返回指令 指令汇编格式:RET [VAL]VAL为无符号偶数 操作:(1) 段内返回:      IP←(SP+1,SP)      SP←SP+2      SP←SP+VAL(如果选用了VAL)    (2) 段间返回:        IP←(SP+1,SP)        SP←SP+2        CS←(SP+1,SP)        SP←SP+2        SP←SP+VAL(如果选用了VAL) 受影响的寄存器:没有 8.4子程序设计方法 8.4.1 现场的保护和恢复 8.4.2 子程序说明文件 8.4.3 主程序与子程序之间的参数传递 8.4.1 现场的保护

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档