- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
L2: L3: DEL: MOV MOV SUB JMP ADD JMP JCXZ BX, BUFFER[SI] BUFFER[SI+2], BX SI, 2 L1 DX, 2 NEXT1 NEXT ;数组下移一位 ;修改长度 ;找到,删此元素 ;其后元素依次前移 DEL1: MOV MOV ADD BX, [DI] [DI-2], BX DI, 2 LOOP DEL1 DX ;改变数组长度 NEXT: DEC NEXT1:RET MAIN ENDP CODE ENDS END START §4-4 程序设计方法 【 分支结构】 三、循环程序结构 1.循环程序的两种结构形式 先执行后判断 进入循环后至少要执行一次循环体,再判断循环是否结束。 适合于循环次数固定的程序。 先判断后执行 进入循环后,先判断循环结束条件,再决定是否执行循环 体,可能循环体一次也不执行。 适合于循环次数不固定的程序。 §4-4 程序设计方法 【 循环程序结构】 (a)“先执行,后判断”结构 (b)“先判断,后执行”结构 §4-4 程序设计方法 入口 初始化部分 循环体 修改参数 【 循环程序结构】 入口 初始化部分 循环控制 循环体 循环控制 修改参数 出口 出口 两种循环结构都包括四部分: ⑴初始化 设置循环计数值,设置变量初值。 ⑵循环体 循环部分的核心:循环的全部执行指令。 ⑶修改参数 修改操作数地址,为下次循环作准备。 ⑷循环控制 修改计数器值,判断循环控制条件,决定是否跳出循环。 §4-4 程序设计方法 【 循环程序结构】 换为ASCII码,存放到BUF 开始的内存单元中去,并 在屏幕显示出数值。 解:本程序编写采用“先执行 后判断”的结构。流程图如 图5-9所示。 §4-4 程序设计方法 例5-8 将BX中的16进制数转 【 循环程序结构】 开始 初始化循环计数值 BX循环左移一位 显示一个字符 把最右面的数位 转换为SCII码 N 是 ‘ A’ ~ ’ F’ ? Y 加上7 循环计数值 =0? Y 出口 N 16进制数转化成ASCII码流程图 解: MOV MOV NEXT: MOV ROL MOV AND ADD CMP JL ADD STORE:MOV MOV MOV INT INC SI, OFFSET BUF CH, 4 CL, 4 BX, CL AL, BL AL, 0FH AL, 30H AL, 3AH STORE AL, 7 [SI], AL AH, 2 DL, AL 21H SI ;设置内存地址 ;计数初值=4 ;最高位移到右边 ;一个数转换成ASCII码 ;字符为A~F吗? ;字符存入内存 ;调用屏幕显示 ;修改计数并判断 CH NEXT DEC JNZ HLT ;循环结束 §4-4 程序设计方法 【 循环程序结构】 例5-9 AX寄存器中有一个16位二进制数,编程统计其中1的个数,结果放 到CL寄存器。 解:相应程序如下 MOV CL, 0 ;初始化 ;控制循环 ;循环体 L1: L2: AND JZ SAL JNC INC JMP AX, AX STOP AX, 1 L2 CL L1 STOP: HLT §4-4 程序设计方法 【 循环程序结构】 2.用逻辑尺的方法控制循环: 自学部分。 3.多重循环: 多重循环设计方法应注意: ⑴初始控制条件。 ⑵循环可以嵌套,并列,但不能交叉。 可以从内循环跳到外循环,不可以从外循环中直接跳进内层循环。 ⑶防止死循环。 §4-4 程序设计方法 【 循环程序结构】 例5-11 存储器数据段从BUF开始存放一个字数组,数组中第一个字中存 放该数组的长度N,编制一个程序使此数组中的数据按照从小到大的次序排 列。 解:采用冒泡排序算法。 从第一个数据开始相邻的数进行比较,若次序不对,两数交换位置。第 一遍比较(N-1)次后,最大的数已到了数组尾。 第二遍仅需比较(N一2)次。 共比较(N-1)遍就完成了排序,于是共有两重循环。 §4-4 程序设计方法 【 循环程序结构】 14:50 §4-4
文档评论(0)