微原 第4章3.pptVIP

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

由此可见,这个问题包含了两重循环,算法中的第一步是一重循环,它多次重复地进行比较与交换的操作,对N个数进行N-1次比较,即N-1次循环。算法中的第二、三步又是一重循环,它将重复地进行第一步的操作,只是循环次数逐渐减少(见上例)。并且,前一循环套在后一循环之内,我们称其为内循环,相应的后一个循环称为外循环。 4.3 循环程序设计技术 …………… 内循环 外循环 4.3 循环程序设计技术 画流程图 低于吗 ? N Y 初始化 CH←数据个数N CH←(CH)-1外循环次数 开 始 ((SI))-((SI)+1)比较 CL ←(CH)内循环次数 BL←0FFH 交换标志 SI←OFFSET DATBUF 两单元内容交换 SI←(SI)+1 CL←(CL)-1 BL ←0 (CL)=0 ? (BL)=0FFH? CH ←(CH)-1 (CH)=0? 结 束 Y N Y N N Y 编程序 STACK SEGMENT STACK DW 256 DUP(?) STACK ENDS DATA SEGMENT DATBUF DB 10 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX 4.3 循环程序设计技术 MOV CH,LENGTH DATBUF DEC CH ;外层循环次数(N-1次) NEXT2: MOV CL,CH ;内层循环次数(N-1次) MOV BL,0FFH ;交换标志 MOV SI,OFFSET DATBUF NEXT1: MOV AL,[SI] CMP AL,[SI]+1 JB NOCHG XCHG AL,[SI]+1 MOV [SI],AL MOV BL,0 NOCHG: INC SI 4.3 循环程序设计技术 DEC CL JNZ NEXT1 CMP BL,0FFH JZ EXIT DEC CH JNZ NEXT2 EXIT: MOV AH,4CH INT 21H CODE ENDS END START 4.3 循环程序设计技术 子程序是完成确定功能的程序段,它可以被其它程序调用,在完成确定功能后,又可自动返回到调用程序处。在进行数值计算时,常常会用到 等或二进制数转换成BCD数及BCD数转换成ASCⅡ码等。对于这样一些常用的程序段,我们可以将其写成子程序,在需要时,只要按一定的格式调用,就可以实现相应的运算或转换,从而避免了程序中多次重复的书写这些程序,也节约了内存。 4.4 子程序设计技术 同时,由于一些常用的子程序可以事先编好,一旦需要时可以随时调用,因而也方便了程序的编制和调用。但子程序的调用和返回需要占用时间,并且子程序通常具有一定的通用性和独立性,因此,在调用时,需要保存某些寄存器的内容,以防止子程序运行过程中破坏调用程序以产生的中间结果,所以,采用子程序在运行时间上将有所损失。 4.3 循环程序设计技术 …… …… ……… (调用程序) CALL 子程序名 RET 子程序名 ENDP 主程序 子程序名 PROC (被调用的程序) 4.3 循环程序设计技术 1.子程序的定义 定义格式: 子程序名 PROC [类型];子程序定义开始伪指令 …… RET 子程序名 ENDP ;子程序定义结束伪指令 子程序体 4.3 循环程序设计技术 一个子程序名一但定义,就具有以下三个属性 段地址 段内偏移地址 类型 FAR NEAR(可缺省) 就是子程序第一条指令的地址 4.3 循环程序设计技术 2.子程序调用与返回指令 ①段内子程序调用与返回 ;主程序 CODE SEGMENT ASSUME CS:CODE START: …… 4.3 循环程序设计技术 … …… ;子程序SUB1 SUB1 PROC NEAR RET ; SUB1 ENDP CODE ENDS EN

文档评论(0)

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

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

1亿VIP精品文档

相关文档