五章循环与分支程序设计.pptVIP

  1. 1、本文档共58页,可阅读全部内容。
  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文档。上传文档
查看更多
五章循环与分支程序设计

一、循环程序的结构形式 结束 初始化 循环的初始状态 循环体 循环的工作部分 及修改部分 计数控制循环 条件控制循环 修改部分 控制条件 Y N 先循环,后判断 一、循环程序的结构形式 结束 初始化 循环的初始状态 循环体 循环的工作部分 及修改部分 计数控制循环 条件控制循环 修改部分 控制条件 Y N 先判断,后循环 xor ax,ax ;被加数ax清0 mov cx,100 again: add ax,cx ;从100,99,...,2,1倒序累加 loop again .model small .stack 256 .data sum dw ? .code .startup mov sum,ax ;将累加和送入指定单元 .exit 0 end 二、循环程序设计(例) 例5.2 在ADDR单元存放着数Y的地址,试编制一程序把Y中1的个数存入COUNT单元中 开始 1的个数计数器←0 循环次数计数器CX←16 Y左移一次 CF=1 1的个数计数器+1 CX ←CX-1=0 COUNT ← 1的个数计数器 结束 N Y N Y 循环次数固定,完全由循环计数器控制 DATA SEGMENT Y DW 1234H ADDR DW Y COUNT DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DL,0 MOV BX,ADDR MOV AX,[BX] MOV CX,16 REPEAT: SHL AX,1 JNC NEXT INC DL NEXT: LOOP REPEAT EXIT0: MOV COUNT,DL MOV AH,4CH INT 21H CODE ENDS END START 例5.2 开始 1的个数计数器←0 循环次数计数器CX←16 Y左移一次 CF=1 1的个数计数器+1 CX ←CX-1=0 COUNT ← 1的个数计数器 结束 N Y N Y Y=0 N Y 例5.2 DATA SEGMENT Y DW 1234H ADDR DW Y COUNT DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DL,0 MOV BX,ADDR MOV AX,[BX] MOV CX,16 REPEAT: SHL AX,1 JNC NEXT INC DL NEXT: LOOP REPEAT EXIT0: MOV COUNT,DL ADD DL,30H MOV AH,2 INT 21H MOV AH,4CH INT 21H CODE ENDS END START CMP AX,0 JZ EXIT0 例5.2 JMP REPEAT 例5.4 将正数N插入一个已升序排列的字数组的正确位置。该数组的首地址和末地址分别为ARRAY_ HEAD 和ARRAY_ END,其中所有的数均为正数。 解法一: 从数组的尾部开始比较 N较大,则在比较对象后插入,结束循环 N较小,则把比较对象及其后元素后移一个字 循环结束的控制: 执行插入操作后结束循环 若N比所有元素都小,扫描整个数组后仍无法结束循环,将-1加在数组前可解决该问题 23, 37, 49, 52 32 END HEAD -1, 23, 37, 49, 52 32, -1, 开始 (ARRAY_HEAD-2)←-1 初始化变址寄存器SI 将N放在K的后面 K=N 修改地址 K后移一个字单元 结束 Y N 例5.4 DATAREA SEGMENT X DW ? ARRAY_HEAD DW 3,5,15,23,37,49 ARRAY_END DW 105 N DW 32 DATAREA ENDS PROGRAM SE

文档评论(0)

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

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

1亿VIP精品文档

相关文档