欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    第5章循环与分支程序设计.ppt

    • 资源ID:182978       资源大小:500.50KB        全文页数:45页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第5章循环与分支程序设计.ppt

    第第 5 章章循环与分支程序设计循环与分支程序设计本章要点1掌握汇编语言程序设计的基本步骤和顺序程掌握汇编语言程序设计的基本步骤和顺序程序设计的基本结构形式序设计的基本结构形式2学会如何分析问题,确定算法,画出程序流学会如何分析问题,确定算法,画出程序流程图,分配工作单元和选择合适指令和编写程图,分配工作单元和选择合适指令和编写程序的设计思想和方法程序的设计思想和方法3掌握简单的算术运算程序设计、直接查表法掌握简单的算术运算程序设计、直接查表法程序设计和简单的代码转换程序设计。程序设计和简单的代码转换程序设计。 汇编语言程序的设计步骤汇编语言程序的设计步骤 1、分析题意,确定算法、分析题意,确定算法2、根据算法画出程序框图、根据算法画出程序框图 3、根据框图编写程序、根据框图编写程序 4、上机调试程序、上机调试程序程序的结构程序的结构 程序有:程序有: 顺序、循环、分支和子程序四种结构形式顺序、循环、分支和子程序四种结构形式顺序结构:每条指令按其在程序中的排列顺序顺序结构:每条指令按其在程序中的排列顺序执行执行51 循环程序设计循环程序设计 循环程序的结构形式:循环程序的结构形式:循环程序组成循环程序组成 1)设置循环的初始状态)设置循环的初始状态 2)循环体。循环工作的主体,由循环的工)循环体。循环工作的主体,由循环的工作部分及修改部分组成。作部分及修改部分组成。 3)循环控制部分)循环控制部分 LOOP、LOOPZ、LOOPNZ在循环体中在循环体中的使用的使用循环程序设计方法循环程序设计方法 例例5l试编制一个程序把试编制一个程序把BX寄存器内的二进制寄存器内的二进制数用十六进制数的形式在屏幕上显示出来数用十六进制数的形式在屏幕上显示出来二进制到十六进制数转换的程序框图(略)二进制到十六进制数转换的程序框图(略) 编程方法编程方法-举例举例1Data segment mess db Your Hex number is:$ bb db 00110100b, 00010010bData endsPrognam segment assume cs: prognam, ds:datastart: mov ax, data mov ds,ax lea dx, mess mov ah,9 int 21h mov bx, word ptr bb mov Ch,4 ;四个四个16进制数位,循环进制数位,循环4次次rotate: mov cl,4 ; rol bx, cl ;右移四位右移四位 mov al, bl and al, 0fh ;取低取低4位位 add al,30h ;将将16进制转为进制转为ASCII码码 cmp al,3ah ; 比较,比较,9? JL printit ; 是是0到到9的数码,打印的数码,打印 Add al,7h ; 是是A 到到F,转换,转换Printit: mov dl, al ; ASCII码放码放DL mov ah, 2 ; 显示功能显示功能 int 21h ;Call DOS dec ch jnz rotate ;是是4个数位吗?如还不是,继续个数位吗?如还不是,继续 mov ah,4ch int 21h ;return to DOSprognam ends ; end of segmentend start ; end of assembly用用JNZ或或JZ指令指令编程方法编程方法-举例举例2Data segment mess db Your Hex number is:$ bb db 00110100b, 00010010bData endsPrognam segment assume cs: prognam, ds:datastart: mov ax, data mov ds,ax lea dx, mess mov ah,9 int 21h mov bx, word ptr bb mov CX,4 ;四个四个10进数位进数位rotate: push cx mov cl,4 ; rol bx, cl ;右移四位右移四位 mov al, bl and al, 0fh ;取低取低4位位 add al,30h ;将将16进制转为进制转为ASCII码码 cmp al,3ah ; 比较,比较,9? JL printit ; 是是0到到9的数码,打印的数码,打印 Add al,7h ; 是是A 到到F,转换,转换用用LOOP指令指令Printit: mov dl, al ; ASCII码放码放DL mov ah, 2 ; 显示功能显示功能 int 21h ;Call DOS pop cx loop rotate ;是是4个数位吗?如还不是,继续个数位吗?如还不是,继续 mov ah,4ch int 21h ;return to DOSprognam ends ; end of segmentend start ; end of assembly编程方法编程方法-举例举例3Prognam segmentmain proc far assume cs: prognamstart: push ds ; 保存保存data段地址,设置返回栈段地址,设置返回栈 sub ax,ax Push ax push bx ;修改部分修改部分 mov bx, 1234h ;修改部分修改部分子程序格式子程序格式;main part of program mov Ch,4 ;四个四个10进数位进数位rotate: mov cl,4 ; rol bx, cl ;右移四位右移四位 mov al, bl and al, 0fh ;取低取低4位位 add al,30h ;将将16进制转为进制转为ASCII码码 cmp al,3ah ; 比较,比较,9? JL printit ; 是是0到到9的数码,打印的数码,打印 Add al,7h ; 是是A 到到F,转换,转换Printit: mov dl, al ; ASCII码放码放DL mov ah, 2 ; 显示功能显示功能 int 21h ;Call DOS dec ch jnz rotate ;是是4个数位吗?如还不是,继续个数位吗?如还不是,继续 pop bx ;修改部分修改部分 ret ;return to DOSmain endp ;end of main part prognam ends ; end of segmentend ; end of assembly例例5.2 在在ADDR单元中存放着数单元中存放着数Y的地址,试的地址,试编制一程序把编制一程序把Y中中1的个数存入的个数存入COUNT单元中。单元中。两个问题:两个问题:1. 数据段如何定义,需定义哪些变量?数据段如何定义,需定义哪些变量?2. 需不需要附加段?需不需要附加段? Y DW 1234HADDR DW YCOUNT DB ?算法分析与程序框架算法分析与程序框架逐位测试逐位测试采用采用DO-WHILE的结构的结构 子程序形式的程序:子程序形式的程序:m502CNT1.asm程序程序datarea segment addr dw Y Y dw 1234h ;修改 count dw ?datarea endsPrognam segment assume cs:prognam,ds:datareastart: mov ax,datarea mov ds, ax mov cx, 0 mov bx, addr mov ax, bx ;将Y中数据=AXrepeat: test ax, 0ffffh jz exit jns Shift inc cx Shift: shl ax,1 Jmp repeat exit: mov count,cx mov ax,4c00h int 21hPrognam ends End start 以十进制怎样显示以十进制怎样显示COUNT中数据?中数据?如如Y为双字长数据,为双字长数据,本程序应怎样修改?本程序应怎样修改?例例53 在附加段中有一个首地址为在附加段中有一个首地址为LIST和未经排序的和未经排序的字数组,在数组的第一个字中存放着该数组的字数组,在数组的第一个字中存放着该数组的长度,数组的首地址已存放在长度,数组的首地址已存放在DI寄存器中。寄存器中。AX寄存器中存放着一个数。要求编制一程序:寄存器中存放着一个数。要求编制一程序:在数组中查找该数,如果找到此数则把它从数在数组中查找该数,如果找到此数则把它从数组中删除。组中删除。分 析 查找元素可使用串处理指令查找元素可使用串处理指令: 删除元素可使用循环结构删除元素可使用循环结构: 处理方法:处理方法: 如果找到这一元素则把数组中地址比该元素如果找到这一元素则把数组中地址比该元素高的元素高的元素 向低地址方向移动二个字,并修向低地址方向移动二个字,并修改数组长度值改数组长度值 如果找到的元素正好位于数组末尾,则不必如果找到的元素正好位于数组末尾,则不必移动任何元素,只要修改数组长度值就可以移动任何元素,只要修改数组长度值就可以 程序:m503DelE.asm (子程序格式)编程方法编程方法-举例举例1datarea segment ;define data segment 修改- LIST dw 10, 65,67,69,71,66,73,71,77,68,72datarea endsprognam segment assume cs:prognam, es:datarea start: mov ax, datarea mov es, ax mov ax, 71 ;如要查数据 71 cld Push di ;保存原先DI中数据 mov di, offset list ;取LIST地址 Push di ;保存开始地址DI续续 mov cx, es:di ;取长度 add di, 2 Repne scasw je delete Pop di jmp short exitdelete: jcxz dec_cnt Next_el: ;移动 mov bx, es: di mov es:di-2, bx add di, 2 loop next_el dec_cnt: pop di dec word PTR es:diexit: POP DI MOV AX,4C00H INT 21HPrognam ends End start例 54 将正数将正数N插入一个已排序的字数组的正确位置。插入一个已排序的字数组的正确位置。该数组的首地址和末地址分别为该数组的首地址和末地址分别为ARRAY_HEAD和和ARRAY_END,其中所有数,其中所有数均为正数且已按递增的次序排列。均为正数且已按递增的次序排列。分 析 找到应插入数的位置找到应插入数的位置作为循环的结束条件作为循环的结束条件 空出插入数的位置空出插入数的位置 高地址元素,向高地高地址元素,向高地址方向移一个字址方向移一个字 从数组的尾部向头部从数组的尾部向头部查找查找数据段定义datarea segment x dw ? array_head dw 3,5,15,23,37,49,52,65,78,99 array_end dw 105 n dw 32datarea ends程序:m504Sort.asm例 55 设有数组设有数组X和和Y。X数组中有数组中有X1,X10;Y数数组中有组中有Y1,Y10。试编制程序计算:。试编制程序计算: Z1X1+Y1 Z5X5-Y5 Z8X8-Y8 Z2X2+Y2 Z6X6+Y6 Z9X9+Y9 Z3X3-Y3 Z7X7-Y7 Z10X10+Y10 Z4X4-Y4结果存入结果存入Z数组。数组。分 析 用循环程序结构,循环计数值为用循环程序结构,循环计数值为10 每次操作:加法或减法每次操作:加法或减法 每次应该做哪一种操作,由逻辑尺确定:每次应该做哪一种操作,由逻辑尺确定: 0000 0000 1101 1100最高的最高的6位没有意义位没有意义

    注意事项

    本文(第5章循环与分支程序设计.ppt)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开