2022年循环与分支程序设计知识 .pdf
《2022年循环与分支程序设计知识 .pdf》由会员分享,可在线阅读,更多相关《2022年循环与分支程序设计知识 .pdf(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章 循环与分支程序设计【课前思考】1.编制一个汇编语言程序分哪几步?2.循环程序有哪两种基本结构?由几部分组成?3.设计算法时对可能出现的边界情况如何考虑?4.如何设置逻辑尺?5.什么是起泡排序算法?6.如何理解数组排序算法中采用的折半查找法?7.如何使用跳跃表法实现CASE结构?【学习目标】了解并掌握循环程序的构造方法,尤其是对循环控制条件的设置以及可能出现的边界情况的考虑。掌握起泡排序算法这种多重循环程序设计中的常用方法。交换标志位的设置在此算法中更能提高效率。学会在数组排序算法中采用折半查找法来提高查找效率。学会使用跳跃表法实现CASE结构。【学习指南】掌握编程的四个步骤至关重要。通
2、过多看举例,学会正确分析理解题意、选择合适的数据结构及算法、坚持先画框图、选取有效指令编程、最后应当掌握运用调试手段进行调试。学习多重循环程序设计前应熟练掌握单层循环程序设计的各种实现方法及实现细节,如对可能出现的边界情况的处理等。学习起泡排序算法、折半查找法、跳跃表法之前,应首先理解传统实现方法。【难重点】循环控制条件的选择。考虑循环算法时注意可能出现的边界情况。静态地预置逻辑尺。动态地修改标志位。多重循环程序设计时应分别考虑各重循环的控制条件及其程序实现,相互之间不能混淆。另外,应该注意在每次通过外层循环再次进入内层循环时,初始条件必须重新设置。起泡排序算法是多重循环程序设计中的一种常用方
3、法。数组排序算法中可以采用折半查找法来提高查找效率。CASE结构可以使用跳跃表法实现。【知识点】名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 23 页 -编制一个汇编语言程序的一般步骤 5.1 循环程序设计 5.1.1 循环程序的基本结构 5.1.2 循环程序设计方法举例循环控制条件边界情况的处理逻辑尺 5.1.3 多重循环程序设计举例起泡排序算法交换标志位 5.2 分支程序设计 5.2.1 分支程序的基本结构 5.2.2 分支程序设计方法举例 折半查找法 5.2.3 跳跃表法一般说来,编制一个汇编语言程序的步骤如下:1)分析题意,确定算法。2)根据算法,画出程序框图。3)根据
4、框图编写程序。4)上机调试程序。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 23 页 -程序有顺序、循环、分支和子程序四种结构形式。顺序程序结构是指完全按顺序逐条执行的指令序列,这在程序段中是大量存在的,但作为完整的程序则很少见,我们不对它们作专门讨论。5.1 循环程序设计5.1.1 循环程序的结构形式及组成循环程序可以有两种结构形式,如图所示。一种是DO_WHILE结构形式;另一种是 DO_UNTIL 结构形式。初始化:设置循环的初始状态;循环体:循环的工作部分及修改部分;控制条件:计数控制、特征值控制、地址边界控制。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页
5、,共 23 页 -例5.1试编制一个程序,把BX寄存器中的二进制数以十六进制的形式显示在屏幕上。解析:根据题目要求应将BX中的内容从左到右每4位一组显示出来,共显示 4个十六进制数位。如果显示的数位是09,则把 4位二进制数加上 30H,转换成相应的 ASCII 码30H39H;如果是 AF,则应加上37H(30H+7),转换成 ASCII 码41H46H。显示字符可以使用DOS功能调用来实现。右图是程序框图(P162页)。以binihex.asm 为文件名,建立源程序如下:;binihex.asmprognam segment ;定义代码段main proc far assume cs:pr
6、ognam start:;程序从此处开始执行 ;为正常返回 DOS 而设置堆栈 push ds sub ax,ax 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 23 页 -push ax;下面是程序的主要部分mov ch,4 ;4 组二进制数rotate:mov cl,4 ;每组4个二进制位rol bx,cl ;把bx循环左移 4位mov al,bl ;暂存bl 到al 中and al,0fh ;仅保留al 的低4位add al,30h ;转换成ASCII码cmp al,3ah ;要显示的数大于 9?jl printit ;如果数在 09之间则显示add al,7h ;数在A
7、F之间则调整printit:mov dl,al ;把要显示字符的 ASCII码送dlmov ah,2 ;功能号2送ahint 21h ;DOS功能调用dec ch ;(ch)-1jnz rotate ;4 组都处理完?否,循环处理下一组ret ;返回DOSmain endp ;主程序main结束prognam ends ;代码段结束end start ;结束汇编例5.2 从键盘接收十进制数并存入 BXprognam segment名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 23 页 -main proc farassume cs:prognamstart:push dssub
8、 ax,axpush axmov bx,0newchar:mov ah,1 ;键盘输入int 21hsub al,30hjl exit ;9 退出cbw例5.3 从键盘接收十六进制数并存入 BXcode segment名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 23 页 -assume cs:code,ds:datastart:mov ax,4c00hint 21h ;返回DOScode endsend start名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 23 页 -例5.4 将正数 N插入一个已整序的字数组的正确位置。该数组的首地址和末地址分别为 ARR
9、AY_HEAD 和ARRAY_END,其中所有数均为正数且已按递增的次序排列。;定义数据段datarea segmentx dw?array_head dw 23,37,49,52,65,78,99array_end dw 105n dw 32datarea ends;定义代码段prognam segmentmain proc far ;主程序部分assume cs:prognam,ds:datareastart:;程序从此处开始执行push dssub ax,axpush axmov ax,datarea名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 23 页 -mov ds,
10、ax;程序的主要部分mov ax,nmov array_head-2,0ffffh ;-1送array_head-2 单元mov si,0compare:cmp array_endsi,axjle insertmov bx,array_endsimov array_endsi+2,bxsub si,2jmp short compareinsert:mov array_endsi+2,axretmain endp ;主程序 main结束prognam endsend start例5.5 设有数组 X(X1,X10)和Y(Y1,Y10),编程计算数组 Z(Z1,名师资料总结-精品资料欢迎下载-名师
11、精心整理-第 9 页,共 23 页 -,Z10),其中:Z1=X1+Y1 Z2=X2+Y2 Z3=X3-Y3 Z4=X4-Y4 Z5=X5-Y5 Z6=X6+Y6 Z7=X7-Y7 Z8=X8-Y8 Z9=X9+Y9 Z10=X10+Y10名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 23 页 -;定义数据段 datarea segmentx dw x1,x2,x3,x4,x5,x6.x7,x8,x9,x10y dw y1,y2,y3,y4,y5,y6,y7,y8,y9,y10z dw z1,z2,z3,z4,z5,z6,z7,z8,z9,z10logic_rule dw 0
12、0dchdatarea ends;定义代码段prognam segmentmain proc far assume cs:prognam,ds:datareastart:push ds sub ax,ax push ax mov ax,datarea mov ds,ax mov bx,0mov cx,10mov dx,logic_rulenext:mov ax,xbxshr dx,1jc subtractadd ax,ybxjmp short resultsubtract:sub ax,ybxresult:mov zbx,axadd bx,2loop nextretmain endp prog
13、nam ends名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 23 页 -end start这种设置逻辑尺的方法是很常用的。例如,在矩阵运算中,为了跳过操作数为0的计算,经常采用这种方法。又如,把一组数据存入存储器时,如果其中数值为0的元素很多,也可用这种方法设立一个每位表示一个下标的逻辑尺(这样的逻辑尺可能占有几个字,由数组的长度确定。),0元素就可不占有存储单元了。在例 5.5中,每个标志只占一位,如果要表示的特征数更多,则每个标志可占有几位,而在处理方法上是完全相同的。设立标志位的方法除了如逻辑尺那样可静态地预置外,还可以在程序中动态地修改标志位的值,以达到控制的目的,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年循环与分支程序设计知识 2022 循环 分支 程序设计 知识
限制150内