汇编语言程序设计 第05章:循环与分支程序设计.ppt

汇编语言程序设计 第05章:循环与分支程序设计.ppt

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

第五章 循环与分支程序设计 5. 循环与分支程序设计 循环程序设计 分支程序设计 5. 循环与分支程序设计 程序结构 (1)顺序结构 (2)循环机构 (3)分支结构 (4)子程序结构 5. 循环与分支程序设计 编制汇编程序的步骤 分析题意,确定算法 根据算法画出程序框图 根据框图写程序 上机调试程序 5.0 顺序程序设计 顺序程序完全按指令书写的前后顺序执行每一条指令,是最基本、最常见的程序结构 一般纯粹的顺序结构的程序设计较少。 5.0 顺序程序设计 例:W?X+Y+Z 5.0 顺序程序设计 例:代码转换 查表法,实现一位16进制数转换为ASCII码显示 5.0 顺序程序设计 5.0 顺序程序设计 5.1 循环程序设计 循环结构一般是根据某一条件判断为真或假来确定是否重复执行循环体 循环指令和转移指令可以实现循环控制 5.1 循环程序设计 5.1.1 循环程序的结构形式 循环程序结构形式 5.1 循环程序设计 5.1.1 循环程序的结构形式 循环程序结构说明 初始化: 设置循环的初始状态 循环体: 循环的工作部分及修改部分 控制条件:计数控制(LOOP) 特征值控制(LOOPZ/LOOPNZ/ 条件跳转指令) 5.1 循环程序设计 5.1.1 循环程序的设计方法 例:把 BX 中的二进制数以十六进制的形式显示在屏幕上 如:1011 0010 1111 1010 B ?B2FAH 5.1 循环程序设计 5.1.1 循环程序的设计方法 分析: 程序结构的确定 由题意应该把BX的内容从左到右每4位为一组在屏幕上显示出来,显然这可以用循环结构来完成,每次显示一个十六进制数位,因而循环次数是已知的,计数值为4。 循环体的构成(算法确定) 循环体应该包括:二进制到所显示字符的ASCII之间的转换,以及每个字符的显示。 需要了解相关知识: 字符和其ASCII码之间的关系: “0”~“9” ?30H~39H, “A”~”F” ?41H~5AH ◆如何显示一个字符? 将显示字符的ASCII码放入DL寄存器; 将AH的内容置为2(功能号); 执行INT 21H(DOS 功能调用) 5.1 循环程序设计 5.1.1 循环程序的设计方法 例:将正数 n 插入一个已整序的正数字数组。该数组的首地址和末地址分别为ARRAY_HEAD, ARRAY_END 分析:题目要求在已经排好序的正数数组中插入一个正数n,因此,解决问题的关键是找到要出入正数n的位置。需要考虑如下问题? (1)如何找到插入位置及软件实现? (2)如何插入正数n及软件实现? (3)数组边界问题考虑? 5.1 循环程序设计 5.1.1 循环程序的设计方法 由于数组已经排好序,因此可以将正数n依次和数组中的数进行比较,比较有个方向问题,这里假设数组在存储单元中按地址递增的方向从小到大依次存放。不妨从大数开始进行比较,当遇到第一个比n小的数,记下该位置,该位置就是要插入n 的位置。 找到出入位置后,如何在不破坏原来数据顺序基础上插入n呢?打个比方:9个同学按高矮依次做在1~10号椅子上,现在第10个同学按照高矮要做在第5号椅子上,那么如何空出第5号椅子呢,但仍然保持高矮次序?只要9号同学移到10号, 9 ?10, 8 ?9, 7 ?8, 6 ?7, 5 ?6就可以了。同样,我们可以如法炮制,数组中将要插入数n位置前的数依次前移一个位置(两个字节),空出要插入位置,将n放入即可。 在插入数时,可能遇到特殊情况,即数n比数组中所有的数都要大,或者小。若比所有的数都大,就不需要移动原数组中的数,直接插入即可;若比所有的数都小,就将数n放在数组的首位置。 5.1 循环程序设计 5.1.1 循环程序的设计方法 很显然,查找位置和空出位置的过程就是循环比较的过程,因此采用循环结构来实现,那么,循环条件如何确定呢?其中一种比较容易想到循环条件就是:数组长度(或数组首地址)及K=n,其中K为依次从数组中取出的一个数。 另外,可以充分利用题目中的已知条件即数组中的数均为正数,所以我们可以在数组的开始的前一个位置存放一个负数,不妨存放数-1,这样,在循环控制时就不需要用数组长度来进行控制,可以进一步简化程序的设计。而且需要注意的是,有可能一次都不需要移动数组中的数。因此,应选择DO—WHILE 结构形式。 5.1 循环程序设计 5.1.1 循环程序的设计方法 例:有数组 x(x1,x2,……,x10) 和 y(y1,y2,……,y10), 编程计算 z(z1,z2,……,z10) z1 = x1 + y1 z2 = x2 + y2

文档评论(0)

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

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

1亿VIP精品文档

相关文档