汇编 第六章子程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编 第六章子程序设计

第六章 子程序的设计 第六章 子程序的设计 本章重点: ? 子程序的概念和特性 ? 子程序的设计与调用 ? 子程序的参数传递方法 第六章 子程序的设计 引例:统计字符串中字符A的个数,存入RESU字节单元, 并以16进制显示。 6.1 子程序的概念与特性 二、 子 程 序 的 特 性 6.2 子程序调用和返回指令 二、段内间接调用 三、段间直接调用 四、段间间接调用 例6.1:段内直接调用,显示字符‘TA’。 例6.2:段间直接调用,显示字符‘TA’。 6.2.2 返回指令 三、段间返回 6.3 子程序的结构形式 6.3.2 现场保护和恢复 现场保护:在子程序功能实现前,把将要用到的寄存器的 原有内容保存起来。 6.4 子程序的设计和调用 6.4.2 子程序设计 6.4.3 子程序调用 例6.5 :设在BUF1、 BUF2、 BUF3、 BUF4四个字单元各存放一个正整数a、b、c、d,编程求a、b的最大公约数和c、d的最大公约数,分别存放在RESU和RESU+2开始的内存区。 6.4.4 主程序与子程序参数传递方式 一、通过寄存器传递参数 P135例7-3:以BCDBUF开始的内存区存放若干压缩BCD码,把它们转换成ASCII码,存放在以ASCBUF开始的内存区,高位放在较高的单元,要求边转换边显示。 要求:显示用子程序实现,入口参数DL存放显示字符的ASCII码。 二、通过堆栈传递参数 P139例7-5:以BCDBUF开始的内存区存放若干压缩BCD码,把它们转换成ASCII码,存放在以ASCBUF开始的内存区,高位放在较高的单元,要求边转换边显示。 要求:显示用子程序实现,入口参数DL,存显示字符的ASCII码。 三、通过存储单元传递参数 6.5 子程序设计举例 一、输入子程序 二、输出子程序 例6.9在显示器上连续输出0~9 三、十六进制数的ASCII码→二进制 四、十六位二进制数→十进制数输出 例6.12将字节单元中的2进制数转换成10进制数输出。 五、十进制数→二进制数 习 题 编写子程序,将字节单元中的2进制数转换成10进制数输出。 P140例7.6 :利用堆栈传递参数,实现对数组求和 例6.6 :编写子程序实现字节数据块传送。 入口参数:SI指向源块首地址,DI指向目的块首地址, CX指向数据块长度。 出口参数:SI指向源块首地址,DI指向目的块首地址。 DATA SEGMENT BUF1 DB 34H, 18H, 61H, 01H CNT EQU $-BUF1 BUF2 DB CNT DUP (?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START:MOV AX, DATA MOV DS, AX MOV SI, OFFSET BUF1 ;源串首地址 MOV DI, OFFSET BUF2 ;目的串首地址 MOV CX, CNT ;长度 CALL MOVD ;调用子程序 MOV AH, 4CH INT 21H ;返回DOS 设置入口参数 MOVD PROC NEAR ;子程序定义开始 PUSH AX PUSH SI PUSH DI ;现场保护 LOP1: MOV AL, [SI] ;取源串中一数据 MOV [DI], AL ;存入目的串 INC SI ;修改源串指针 INC DI ;修改目的串指针 LOOP LOP1 ;没传完,继续 POP DI POP SI

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档