ch4_ARM7TDMI汇编语言程序设计.pptVIP

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

西安邮电学院 计算机系 * * 多重循环程序设计 多重循环又称循环嵌套,即循环套循环。有些问题比较复杂,单重循环难以解决,必须使用多重循环。在使用多重循环时,必须注意以下几点: ⑴关系: 内循环必须完整地包含在外循环内,内外循环不能相互交叉。 ⑵ 跳转:内循环既可以嵌套在外循环中,也可以几个内循环并列存在。可以从内循环中直接跳到外循环,但不能从外循环直接跳进内循环中。 ⑶ 注意:防止出现“死循环”。无论是外循环,还是内循环,千万不要使循环返回到初始部分, 这一点应当特别注意。 ⑷参数设置: 每次通过外循环再次进入内循环时,初始条件必须重新设置。 西安邮电学院 计算机系 * * ⑷ 每次通过外循环再次进入内循环时,初始条件必须重新设置。 [例]利用逐次求大数的方法对内存单元ARRAY开始的一字节为单位的无符号数进行从大到小排序。 根据题意,排序方法为: 49 38 65 12 97 13 55 27 78 85 49 49 65 65 97 97 38 38 49 49 65 65 78 78 85 85 78 65 55 49 38 27 13 12 12 ARRAY R6 BX SI SI SI SI SI SI SI SI SI BX SI SI SI SI SI SI SI SI 西安邮电学院 计算机系 * * 综合举例: 在以BUF为首址的字存储区中存放有10个无符号数 0x0FF,0x00, 0x40, 0x10, 0x90, 0x20, 0x80, 0x30, 0x50, 0x70, 0x60,现需将它们按从小到大的顺序排列在BUF存储区中,试编写其程序。 1、分析 2、流程 3、编程 4、调测 西安邮电学院 计算机系 * * R1 R2 流程图 分析:采用逐一比较法: 将第一个存储单元中的数与其后n-1个存储单元中的数逐一比较,每次比较之后,总是把小者放在第一个存储单元之中,经过n-1次比较之后,n个数中最小者存入第一存储单元中; 接着从第二个存储单元开始,同理,经过n-2次比较之后,得到n-1个数中最小者存入第二存储单元中;如此类推,当最后两个存储单元的数比较完成之后,从小到大的排列顺序就实现了。 “冒泡排序”算法。 西安邮电学院 计算机系 * * 各寄存器分配功能如下: R0:用来指示缓冲区初始地址 R1:外循环计数器 R2:内循环计数器 R3:外循环地址指针 R4:内循环地指针 R5:内循环下一个数地址指针 R6:存放内循环一轮比较的最小值 R7:存放内循环取出的下一个比较值 西安邮电学院 计算机系 * * 源程序如下: N EQU 10 AREA EX4_47, CODE, READONLY ENTRY CODE32 START LDR R0, =BUF ;指向数组的首地址 MOV R1, #0 ;外循环计数器 MOV R2, #0 ;内循环计数器 LOOPI ADD R3, R0, R1, LSL #2 ;外循环首地址存R3 MOV R4, R3 ;内循环首地址存R4 ADD R2, R1, #1 ;内循环计数器初值 MOV R5, R4 ;内循环下一地址初值 LDR R6, [R4] ;取内循环下一地址值R4 西安邮电学院 计算机系 * * LOOPJ ADD R5, R5, #4 ;内循环下一地址值 LDR R7, [R5] ;取出下一地址值至R7 CMP R6, R7 ;比较 BLT NEXT ;小则取下一个 SWP R7, R6, [R5] ;大则交换,最小值R6 MOV R6, R7 NEXT ADD R2, R2, #

文档评论(0)

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

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

1亿VIP精品文档

相关文档