汇编语言程序设计-第05章:循环及分支程序设计 - 副本.ppt

汇编语言程序设计-第05章:循环及分支程序设计 - 副本.ppt

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

* * * * * * * 5.1 循环程序设计 5.1.1 循环程序的设计方法 很显然,查找位置和空出位置的过程就是循环比较的过程,因此采用循环结构来实现,那么,循环条件如何确定呢?其中一种比较容易想到循环条件就是:数组长度(或数组首地址)及K=n,其中K为依次从数组中取出的一个数。 另外,可以充分利用题目中的已知条件即数组中的数均为正数,所以我们可以在数组的开始的前一个位置存放一个负数,不妨存放数-1,这样,在循环控制时就不需要用数组长度来进行控制,可以进一步简化程序的设计。而且需要注意的是,有可能一次都不需要移动数组中的数。因此,应选择DO—WHILE 结构形式。 * * 开始 (ARRAY_HEAD-2)?-1 初始化变址寄存器SI KN? 插入N 修改地址 结束 K前移一个字 Y N * x dw ? array_head dw 3,5,15,23,37,49,52,65,78,99 array_end dw 105 n dw 32 …… mov ax, n mov array_head-2, 0ffffh mov si, 0 compare: cmp array_end [si], ax jle insert mov bx, array_end [si] mov array_end [si+2], bx sub si, 2 jmp short compare insert: mov array_end [si+2], ax …… 3 5 15 23 37 49 52 65 78 99 105 32 -1 array_head? array_end? n ? x ? 5.1 循环程序设计 5.1.1 循环程序的设计方法 例:有数组 x(x1,x2,……,x10) 和 y(y1,y2,……,y10), 编程计算 z(z1,z2,……,z10) z1 = x1 + y1 z2 = x2 + y2 z3 = x3 - y3 z4 = x4 - y4 z5 = x5 - y5 z6 = x6 + y6 z7 = x7 - y7 z8 = x8 - y8 z9 = x9 + y9 z10= x10 + y10 * 逻辑尺:0 0 1 1 0 1 1 1 0 0 1 减法 0 加法 * 开始 初始化循环计数 i=0 Xi-Yi 测试逻辑尺 的第 i 位的值 Xi+Yi Zi?结果 i ? i+1 循环计数 值=0? 结束 =0 0 Y N * x dw x1,x2,x3,x4,x5,x6,x7,x8,x9,x10 y dw y1,y2,y3,y4,y5,y6,y7,y8,y9,y10 z dw z1,z2,z3,z4,z5,z6,z7,z8,z9,z10 logic_rule dw 00dch ;0000,0000,1101,1100 …… mov bx, 0 mov cx, 10 mov dx, logic_rule next: mov ax, x[bx] shr dx, 1 jc subtract add ax, y[bx] jmp short result ; 向前引用 subtract: sub ax, y[bx] result:mov z[bx], ax add bx, 2 loop next …… 5.1 循环程序设计 5.1.3多重循环 多重循环程序设计的基本方法和单重循环程序设计是一致的,应分别考虑各重循环的控制条件及其程序实现,相互之间不能混淆。 特别注意的是在每次通过外循环再次进入内循环时,初始条件必须重新设置。 例: 将首地址为A的字数组从小到大排序32,85,16,15, 8 (冒泡算法,多重循环) * 5.1 循环程序设计 5.1.3多重循环 “冒泡法”是一种排序算法,不是最优的算法,但它易于理解和实现 冒泡法从第

文档评论(0)

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

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

1亿VIP精品文档

相关文档