4 汇编语言程序设计2.ppt

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

* 循环程序:当每次执行这个程序结构时,有部分程序可能被执行若干次。 循环程序一般由五部分组成: (1)初始化部分 也称循环的准备部分。 (2)工作部分 也称循环体,是循环程序的核心部分。 (3)修改部分 (4)控制部分 (5)结束处理部分 对循环结果进行分析或保存。 循环程序从执行循环的控制结构上分可有两种基本结构形式: (1 ) “先执行,后判断”控制结构 (2 ) “先判断,后执行”控制结构 初始化部分 初始化部分 工作部分 循环结束? Y N 修改部分 工作部分 N 循环结束? 修改部分 Y 结束处理部分 结束处理部分 循环程序的控制方法 常用的循环程序的控制方法有计数法、寄存器终值法、条件控制法等(主要叙述前三种方法)。 例:编写一程序,从数据段中一未排序的字数组ARRAY中,找出最大值和最小值分别存放到AX和BX 寄存器中。 开始 N-1→CX 取数组第一个数→ AX和BX 数组中数与(AX)和(BX)比较 大数→ AX 小数→ BX 比较完? 结束 N Y DATA SEGMENT N EQU 6 ARRAY DW 98H,04H,76H,12H,09H,0F8H DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA START: PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV CX,N-1 LEA SI,ARRAY MOV AX,[SI] MOV BX,AX AGAIN: ADD SI,2 CMP BX,[SI] JLE FMAX MOV BX,[SI] JMP SHORT NEXT FMAX: CMP AX,[SI] JGE NEXT MOV AX,[SI] NEXT: LOOP AGAIN RET MAIN ENDP CODE ENDS END START 例:求平方根程序:内存SQU单元存放一个完全平方数,编一个求平方根程序。 分析:从1开始连续I个奇数之和是I的平方数N,如:1+3+5+7+9+11+13=49,其中I=7(7个连续的奇数),N=49(连续奇数之和),所以N=I2; 开始 初始化 平方值=0? 平方数减奇数 计数器加1 形成下一个奇数 保存结果 结束 DATA SEGMENT SQU DW 13924 ROOT DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA SQROOT: MOV AX,DATA MOV DS,AX XOR CX,CX ;计数器清0 MOV BX,1 ;置奇数 MOV DX,SQU ;把平方数送DX L1: AND DX,DX ;判断平方数是否为0 JZ L2 ;为0,退出 SUB DX,BX ;平方数减奇数 INC CX ;减奇数的次数加1 ADD BX,2 ;形成下一个奇数 JMP L1 L2: MOV ROOT,CX ;保存结果 MOV AH,4CH ;返回DOS INT 21H CODE ENDS END SQROOT 在实际使用的程序中,大多数程序是由一个主程序和若干个子程序组成的。所谓子程序是指人们将那些重复

文档评论(0)

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

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

1亿VIP精品文档

相关文档