下载此文档

汇编语言(天津大学)chapter 6.ppt


文档分类:IT计算机 | 页数:约58页 举报非法文档有奖
1/58
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/58 下载此文档
文档列表 文档介绍
第六章子程序结构
§ 子程序的设计方法
§ 嵌套与递归子程序
§ 子程序举例
§ DOS系统功能调用
§ 子程序的设计方法
一、子程序指令
二、子程序的调用与返回
三、现场的保护与恢复
四、子程序参数的传递
一、子程序指令
子程序是完成特定功能的一段程序
当主程序(调用程序)需要执行这个功能时,采用CALL调用指令转移到该子程序的起始处执行
当运行完子程序功能后,采用RET返回指令回到主程序继续执行
一、子程序指令—调用指令
CALL指令分成4种类型(类似JMP)
CALL label ;段内调用、直接寻址
CALL r16/m16 ;段内调用、间接寻址
CALL far ptr label ;段间调用、直接寻址
CALL far ptr mem ;段间调用、间接寻址
CALL指令需要保存返回地址:
段内调用——入栈偏移地址IP
SP←SP-2,SS:[SP]←IP
段间调用——入栈偏移地址IP和段地址CS
SP←SP-2,SS:[SP]←CS
SP←SP-2,SS:[SP]←IP
一、子程序指令—返回指令
根据段内和段间、有无参数,分成4种类型
RET ;无参数段内返回
RET i16 ;有参数段内返回
RET ;无参数段间返回
RET i16 ;有参数段间返回
需要弹出CALL指令压入堆栈的返回地址
段内返回——出栈偏移地址IP
IP←SS:[SP], SP←SP+2
段间返回——出栈偏移地址IP和段地址CS
IP←SS:[SP],SP←SP+2
CS←SS:[SP],SP←SP+2
一、子程序指令—返回指令RET的参数
RET i16 ;有参数返回
RET指令可以带有一个立即数i16,完成RET操作后,堆栈指针SP将增加,即
SP←SP+i16
这个特点使得程序可以方便地废除若干执行CALL指令以前入栈的参数
二、子程序的调用与返回
CALL label
主程序
RET
子程序
回到CALL指令后的指令处——返回地址
二、子程序的调用与返回 —书写形式(同一代码段内)
二、子程序的调用与返回 —书写形式(不同代码段)
三、现场的保护与恢复
现场:主程序转向子程序之前,其所使用的一些资源的状态(如标志位、R/M等)
子程序与主程序分别编制,通常会导致使用的资源发生冲突而影响主程序在调用子程序之后的正确执行
方法:利用堆栈
在主程序中进行
在子程序中进行

汇编语言(天津大学)chapter 6 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数58
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小1.79 MB
  • 时间2017-06-26