教学课件PPT循环与分支程序设计.ppt

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

第五章 顺序、循环与分支程序设计 5.1 顺序程序设计 顺序程序完全按指令书写的前后顺序执行每一条指令,是最基本、最常见的程序结构。 例5.1 Data segment X dw 33 Y dw 47 Z dw 65 W dw ? Data ends Code segment assume cs:code assume ds:data Begin:mov ax,X add ax,Y adc ax,Z mov W,ax mov ah,4ch int 21h Code ends end Begin 例5.2 qvar dq 1234567887654321h mov al,byte ptr qvar[6] mov byte ptr qvar[7],al mov al,byte ptr qvar[5] mov byte ptr qvar[6],al mov al,byte ptr qvar[4] mov byte ptr qvar[5],al mov al,byte ptr qvar[3] mov byte ptr qvar[4],al 例5.2 64位数据左移8位的图示 5.2 循环程序设计 循环结构一般是根据某一条件判断为真或假来确定是否重复执行循环体。 循环指令和转移指令可以实现循环控制 例5.3 计算1~100数字之和 .model small .stack 256 .data sum dw ? .code begin: mov ax,@data mov ds,ax xor ax,ax ;被加数AX清0 mov cx,100 again: add ax,cx ; loop again mov sum,ax ;将累加和送入指定单元 mov ah,4ch int 21h end begin 例5.4 确定wordX中1的最低位数 begin: mov ax,wordX ;测试目标送AX mov cx,16 ;循环计数器置初值 mov dl,-1 ;计位器置初值 again: inc dl test ax,1 ror ax,1 ;循环指令不影响ZF loope again ;CX≠0且ZF=1(测试位为0) ;继续循环 je notfound mov byteY,dl jmp done notfound:mov byteY,-1; ZF=1,测试目标的16个位均为0 done: mov ah,4ch int 21h 例5.5 大写字母改为小写字母 Begin: mov bx,offset string again: mov al,[bx] ;取一个字符 or al,al ;是否为结尾符0 jz done ;是,退出循环 cmp al,A ;是否为大写A~Z jb next cmp al,Z ja next or al,20h ;是,转换为小写字母(使D5=1) mov [bx],al ;仍保存在原位置 next: inc bx jmp again ;继续循环 done: mov ah,4ch int 21h 例5.6 对数组元素排序:冒泡法 mov cx,count ;CX←数组元素个数 dec cx ;元素个数减1为外循环次数 outlp: mov dx,cx ;DX←内循环次数 mov bx,offset array inlp: mov al,[bx] ;取前一个元素 cmp al,[bx+1] ;与后一个元素比较 jna next;前一个不大于后一个元素,则不进行交换 xchg al,[bx+1] ;否则,进行交换 mov [bx],al next: inc bx ;下一对元素 dec dx jnz inlp ;内循环尾 loop outlp ;外循环尾 冒泡法 “冒泡法”是一种排序算法,不是最优的算法,但它易于理解和实现。 冒泡法从第一个元素开始,依次对相邻的两个元素进行比较,使前一个元素不大于后一个元素;将所有元素比较完之后,最大的元素排到了最后;然后,除掉最后一个元素之外的元素依上述方法再进行比较,得到次大的元素排在后面;如此重复,直至完成就实现元素从小到大的排序。 这是一个双重循环程序结构。外循环由于循环次数已知,可用loop指令实现;而内循环次数每次外循环后减少一次,我们用DX表示。内循环体比较两个元素大小,又是一个分支结构。 5.3 分支程序设计 分支程序根据条件是真或假决定执行与否。 判断的条件是各种指令,如CMP、TEST等执行后形成的状态标

文档评论(0)

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

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

1亿VIP精品文档

相关文档