网站大量收购闲置独家精品文档,联系QQ:2885784924

第5章4 子的程序设计.ppt

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

编写一个加解密程序。加密方法:将明文字符和密钥字符异或,得到密文。解密方法:将密文字符和密钥字符异或,得到明文。要求加解密用子程序实现。(加密和解密采用同一子程序,不同入口、出口参数)。数据段定义如下: Data segment str db hello,everybody ;原文 Len equ $-str ;长度 cipher db len dup(?) ;加密后的密文 plain db len dup(?) ;解密后的明文 Key db 56h ;密钥 Data ends 子程序(Subroutine ): 把程序需要完成的任务分解为若干个“子任务”,每个“子任务”由一段相对独立的程序完成,称为“子程序”。 调用子程序的程序称为“主程序”或者“主调程序”。 子程序也称为“过程”(Procedure),在高级语言里还称作“函数”(Function)。 子程序的设计 子程序结构程序的优点: 1.程序结构清晰,提高了程序的可阅读性和可维护性。 2.每个子程序可以独立地进行调试,由于程序规模较小,降低了调试难度。 3.每个子程序就是一个具有特定功能的独立的程序,提高程序的“可重用性”,提高了软件开发效率。 子程序的调用和返回 子程序的定义 子程序名 PROC [NEAR/FAR] 子程序体 子程序名 ENDP 说明: 子程序名应为合法的标识符,子程序名不能与同一个源程序中的标号、变量名、其它子程序名相同。 方括号中的内容是子程序的远近属性选项,二者可选其一,如果缺省,默认为NEAR。 用NEAR说明的子程序是“近程子程序”,它只能被与它同一代码段的程序调用。 用FAR说明的子程序是“远程子程序”,它不仅能被与它同一代码段的程序调用,也能被其它代码段的程序调用。 子程序的定义要写在代码段内。 定义一个延时子程序 DELAY PROC MOV CX,0FFFFH GOON: MOV AX, 1 LOOP GOON RET DELAY ENDP 例: ZEROBYTES PROC ; 定义一个子程序 XOR AX, AX ; AX清零 MOV CX, 128 ; 循环次数送CX ZEROLOOP:MOV [BX], AX ; 将一个字存储单元清零 ADD BX, 2 ; 修改地址 LOOP ZEROLOOP ; 循环控制 RET ; 返回主程序 ZEROBYTES ENDP ; 子程序结束 思考题:该子程序完成了什么功能?调用该子程序时, 应该先做什么准备工作? CALL(Call,调用)指令 子程序的调用,在主程序中使用 格式:CALL 子程序名 例如:CALL PROC1 子程序的调用和返回:CALL和RET指令 无参数段内返回,在子程序中使用 格式:RET RET(Return,返回)指令 完整调用示例: Data segment buf db 1 Data ends Code segment assume cs:code,ds:data Start: mov ax,data mov ds,ax mov bl, 2 call delay mov bl,3 call delay jmp $ DELAY PROC MOV CX,0FFFFH GOON: INC AX LOOP GOON RET DELAY ENDP Code ends end start 主过程也可以写为子程序形式,像C语言一样,整个代码段均由一个个子程序组成: Data segment buf db 1 Data ends Code segment assume cs:code,ds:data Start proc mov ax,data mov ds,ax mov bl, 2 call delay mov bl,3 call delay

文档评论(0)

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

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

1亿VIP精品文档

相关文档