第5章程序控制结构及其程序设计PPT讲稿.ppt
《第5章程序控制结构及其程序设计PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第5章程序控制结构及其程序设计PPT讲稿.ppt(173页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5章章程序控制结构程序控制结构及其程序设计及其程序设计第1页,共173页,编辑于2022年,星期一5.1 5.1 汇编语言程序设计概述汇编语言程序设计概述 5.1.1汇编语言程序设计的基本步骤汇编语言程序设计的基本步骤编制汇编语言程序的基本步骤如下:编制汇编语言程序的基本步骤如下:(1)分分析析问问题题,抽抽象象出出描描述述问问题题的的数数学学模模型型。遇遇到到一一个个题题目目,特特别别是是一一个个较较为为复复杂杂的的题题目目,先先要要对对其其进进行行全全面面的的分分析析,看看它它给给出出了了什什么么条条件件,有有什什么么特特点点,找找出出规规律律,归归纳纳出出数数学学模模型型。当当然然,
2、也也可可能能有有些些问问题题不用写出数学模型或写不出数学模型。不用写出数学模型或写不出数学模型。第2页,共173页,编辑于2022年,星期一 (2)确确定定算算法法。有有了了数数学学模模型型,或或虽虽然然没没有有数数学学模模型型但但已已把把题题目目分分析析清清楚楚了了,就就选选择择一一个个合合适适的的算算法法和和适适当当的的数数据据结结构构。如如果果没没有有可可供供选选用用的的现现成成的的算算法法和和结构,就需要针对具体问题设计一个算法或结构。结构,就需要针对具体问题设计一个算法或结构。(3)绘绘制制流流程程图图。流流程程图图就就是是用用图图形形的的方方式式把把解解决决问问题题的的算算法法直直
3、观观地地描描述述出出来来。对对于于一一个个比比较较复复杂杂的的问问题题,画画出出流流程程图图,这这有有助助于于对对问问题题的的理理解解以以及及有有助助于于编编写写出出正正确确的的程程序序。当当然然,如如果果算算法法比比较较简简单单,也也可可不画流程图。不画流程图。第3页,共173页,编辑于2022年,星期一 (4)分分配配存存储储空空间间和和工工作作单单元元。用用汇汇编编语语言言编编写写程程序序时时,需需要要给给程程序序中中的的变变量量指指定定内内存存单单元元地地址址或或指指定定寄存器。寄存器。(5)编编写写程程序序。要要把把题题目目中中需需要要处处理理的的数数据据合合理理地地根根据据(2)、
4、(3)、(4)步步的的工工作作,选选用用适适合合的的指指令令,并并按按一定的语法规则编写相应的程序。一定的语法规则编写相应的程序。(6)静静态态检检查查。静静态态检检查查就就是是用用人人工工的的方方式式检检查查程程序序是是否否有有错错误误,包包括括算算法法错错误误和和语语法法错错误误等等,如如果果有有错错误误,及及时时改改正正过过来来。处处理理得得好好,静静态态检检查查能能够够发发现现和改正程序中的大部分错误。和改正程序中的大部分错误。第4页,共173页,编辑于2022年,星期一 (7)上上机机调调试试运运行行。任任何何程程序序必必须须经经过过调调试试,才才能能检检查查出出解解题题目目的的是是
5、否否正正确确以以及及程程序序是是否否符符合合设设计计思思想想。在在调调试试程程序序的的过过程程中中,应应该该善善于于利利用用机机器器提提供供的的调调试试工工具具(如如DEBUG)和和有有效效的的其其他他工工具具软软件件来来进进行行工工作作,经经过过反反复复的的“运运行行发发现现错错误误改改正正错错误误运运行行”,才才能能得得到到正正确确的的程程序序。这这一一点点对对初初学学者者特特别别重重要要,它它将给汇编语言编程提供很大的帮助。将给汇编语言编程提供很大的帮助。程程序序的的编编写写和和调调试试运运行行是是学学好好汇汇编编语语言言的的重重要要手手段段。只只有有多多编编写写程程序序和和多多调调试试
6、运运行行程程序序,才才能能有有效效地地提高编写和阅读程序的能力。提高编写和阅读程序的能力。第5页,共173页,编辑于2022年,星期一 5.1.2程序流程图程序流程图表表示示一一个个算算法法,可可以以用用不不同同的的方方法法。常常用用的的有有自自然然语语言言、传传统统流流程程图图、结构化流程图、伪代码和结构化流程图、伪代码和PAD图图等。等。1.用自然语言表示算法用自然语言表示算法很多算法是用自然语言表示的,自然语言是指人们日常使用很多算法是用自然语言表示的,自然语言是指人们日常使用的语言。用自然语言表示算法通俗易懂,但文字冗长,容易出现的语言。用自然语言表示算法通俗易懂,但文字冗长,容易出现
7、“歧义性歧义性”。自然语言表示的含义往往不大严格,要根据上下文才。自然语言表示的含义往往不大严格,要根据上下文才能判断其正确的含义。假如有这样一句话:能判断其正确的含义。假如有这样一句话:“王先生对刘先生说孩王先生对刘先生说孩子考上了大学。子考上了大学。”是王是王先生的孩子考上大学呢,还是刘先生的孩子考先生的孩子考上大学呢,还是刘先生的孩子考上大学呢上大学呢?光从这句话本身难以判断。此外,用自然语言描述包含分支光从这句话本身难以判断。此外,用自然语言描述包含分支和循环的算法很不方便。因此,除了很简单的问题以外,一般程序设计和循环的算法很不方便。因此,除了很简单的问题以外,一般程序设计不用自然语
8、言描述算法。不用自然语言描述算法。第6页,共173页,编辑于2022年,星期一 2.流程图的组成流程图的组成流流程程图图是是用用一一些些图图框框表表示示各各种种操操作作。用用图图形形表表示示算算法法,直直观观形形象象,易易于于理理解解。美美国国国国家家标标准准化化协协会会ANSI(AmericanNationalStandardInstitute)规规定定了了一一些些常常用用的的流流程程图图图图元元(见见图图5.1),已已被被世世界界各各国国程程序序工作者普遍采用。工作者普遍采用。借借助助于于流流程程图图可可以以清清晰晰地地把把程程序序思思路路表表达达出出来来,有有助助于于编编写写正正确确的的
9、程程序序。流流程程图图对对于于程程序序设设计计人人员员,特特别是初学者是一种非常有用的工具。别是初学者是一种非常有用的工具。流程图一般由流程图一般由6种成分组成,如图种成分组成,如图5.1所示。所示。第7页,共173页,编辑于2022年,星期一图5.1 流程图的组成成分图第8页,共173页,编辑于2022年,星期一 1)执行框执行框(矩形框矩形框)图图5.1中中的的方方框框,其其作作用用是是表表示示一一段段程程序序或或一一个个模模块块的的功功能能,对对于于结结构构化化程程序序,一一个个执执行行框框只只有有一一个个入入口和一个出口。口和一个出口。2)判别框判别框(菱形框菱形框)图图5.1中的菱形
10、框,其作用是对一个给定的条件进中的菱形框,其作用是对一个给定的条件进行判断,根据给定的条件是否成立来决定如何执行其行判断,根据给定的条件是否成立来决定如何执行其后的操作。它有一个入口,两个出口,如图后的操作。它有一个入口,两个出口,如图5.2所示。所示。第9页,共173页,编辑于2022年,星期一图5.2 流程图的绘制示意 第10页,共173页,编辑于2022年,星期一 3)开始框和终止框开始框和终止框图图5.1中的圆头方框表示程序的起始和终止。中的圆头方框表示程序的起始和终止。4)指向线指向线指向线表示程序执行的顺序。指向线表示程序执行的顺序。5)连接点连接点图图5.1中中小小圆圆圈圈是是连
11、连接接点点,用用于于将将画画在在不不同同地地方方的的流流程程线线连连接接起起来来。如如图图5.2中中有有两两个个以以为为标标志志的的连连接接点点,它它表表示示这这两两个个点点是是互互相相连连接接在在一一起起的的。实实际际上上它它们们是是同同一一个个点点,只只是是当当在在纸纸张张上上画画不不下下时时才才分分开开来来画画。用用连连接接点点,可可以以避避免免流流程程线线的的交交叉叉或或过过长长,使使流流程程图图清晰。清晰。第11页,共173页,编辑于2022年,星期一 流流程程图图是是表表示示算算法法的的较较好好工工具具。一一个个流流程程图图包包括括以下几部分:以下几部分:(1)表示相应操作的框;表
12、示相应操作的框;(2)带箭头的流程线;带箭头的流程线;(3)框内外必要的文字说明。框内外必要的文字说明。绘绘制制流流程程线线不不要要忘忘记记画画箭箭头头,因因为为它它是是反反映映流流程程执执行行的的先先后后次次序序的的,如如不不画画出出箭箭头头就就难难以以判判定定各各框框的的执行次序了。执行次序了。第12页,共173页,编辑于2022年,星期一 用用流流程程图图表表示示算算法法直直观观、形形象象,能能比比较较清清楚楚地地显显示示出出各各个个框框之之间间的的逻逻辑辑关关系系。前前一一时时期期国国内内外外计计算算机机书书刊刊都都广广泛泛使使用用这这种种流流程程图图表表示示算算法法,但但是是,这这种
13、种流流程程图图占占用用篇篇幅幅较较多多,尤尤其其当当算算法法比比较较复复杂杂时时,画画流流程程图图既既费费时时又又不不方方便便,在在结结构构化化程程序序设设计计方方法法推推广广之之后后,许许多多书书刊刊已已用用N-S结结构构化化流流程程图图代代替替这这种种传传统统的的流流程程图图。但但是是每每一一个个程程序序编编制制人人员员都都应应当当熟熟练练掌掌握握传传统统流流程程图图,做到会看会画。做到会看会画。第13页,共173页,编辑于2022年,星期一 3.三种基本结构和改进的流程图三种基本结构和改进的流程图1)传统流程图的弊端传统流程图的弊端传传统统的的流流程程图图用用流流程程线线指指出出各各框框
14、的的执执行行顺顺序序,对对流流程程线线的的使使用用没没有有严严格格限限制制。因因此此,使使用用者者可可以以不不受受限限制制地地使使流流程程随随意意地地转转来来转转去去,使使流流程程图图变变得得毫毫无无规规律律。阅阅读读者者要要花花很很大大精精力力去去追追踪踪流流程程,使使人人难难以以理理解解算算法法的的逻逻辑辑。这这种种情情况况如如图图5.3所所示示。这这种种如如同同乱乱麻麻一一样样的的算算法法称称为为BS型型算算法法,意意为为就就像像一一碗碗面面条条(ABowlofSpaghetti),乱无头绪。,乱无头绪。第14页,共173页,编辑于2022年,星期一图5.3 杂乱流程示意第15页,共17
15、3页,编辑于2022年,星期一 这这种种算算法法不不好好,难难以以阅阅读读,也也难难以以修修改改,可可靠靠性性和和可可维维护护性性难难以以保保证证。如如果果我我们们写写出出的的算算法法能能限限制制流流程程的的无无规规律律任任意意转转向向,如如同同一一本本书书那那样样,由由各各章章各各节节顺顺序序组组成成,那那样样,阅阅读读起起来来就就很很方方便便,从从头头到到尾尾顺顺序序地地看看下下去去即即可可。而而如如果果一一本本书书不不是是由由各各章章节节顺顺序序组组成成,各章节内各节毫无规律地乱排,阅读这种书就很困难。各章节内各节毫无规律地乱排,阅读这种书就很困难。第16页,共173页,编辑于2022年
16、,星期一 为为了了提提高高算算法法的的质质量量,使使算算法法的的设设计计和和阅阅读读更更方方便便,必必须须限限制制滥滥用用箭箭头头,即即不不允允许许无无规规律律地地使使流流程程随随意意转转向向,只只能能顺顺序序地地进进行行下下去去。但但是是,算算法法上上难难免免会会包包含含一一些些分分支支和和循循环环,而而不不可可能能全全部部由由一一个个一一个个框框顺顺序序组组成成。为为了了解解决决这这个个问问题题,人人们们设设想想,规规定定出出几几种种基基本本结结构构,然然后后由由这这些些基基本本结结构构按按一一定定规规律律组组成成一一个个算算法法结结构构(如如同同用用一一些些基基本本预预制制构构件件来来搭
17、搭成成房房屋屋一一样样),整整个个算算法法的的结结构构是是由由上上而而下下地地将将各各个个基基本本结结构构顺顺序序排排列列起起来来的的。如如果果能能做做到到这这一一点点,算算法法的的质质量量就就能能得得到保证和提高。到保证和提高。第17页,共173页,编辑于2022年,星期一 2)三种基本结构三种基本结构1966年年,BOHRA和和JACOPINI提提出出了了以以下下三三种种基基本本结结构构,用用这这三三种种基基本本结结构构作作为为表表示示一一个个良良好好算算法法的的基本单元。基本单元。(1)顺顺序序结结构构。如如图图5.4所所示示,虚虚线线框框内内是是一一个个顺顺序序结结构构。其其中中A和和
18、B两两个个框框是是顺顺序序执执行行的的。即即在在执执行行完完A框框所所指指定定的的操操作作后后,必必然然接接着着执执行行B框框所所指指定定的的操操作作。顺序结构是最简单的一种基本结构。顺序结构是最简单的一种基本结构。第18页,共173页,编辑于2022年,星期一图5.4 顺序结构图 第19页,共173页,编辑于2022年,星期一 (2)选选择择结结构构(也也称称选选取取结结构构或或分分支支结结构构)。如如图图5.5所所示示,虚虚线线框框内内是是一一个个选选择择结结构构。此此结结构构中中必必包包含含一一个个判判断断框框。根根据据给给定定的的条条件件P是是否否成成立立而而选选择择执执行行A框框或或
19、B框框。请请注注意意,无无论论P条条件件是是否否成成立立,只只能能执执行行A框框或或B框框之之一一,不不可可能能既既执执行行A框框又又执执行行B框框。无无论论走走哪哪一一条条路路径径,在在执执行行完完A或或B之之后后,都都经经过过b点点,然然后后脱脱离离本本选选择择结结构构。A或或B两两个个框框中中可可以以有有一一个个是是空空的的,即不执行任何操作。即不执行任何操作。(3)循循环环结结构构(又又称称重重复复结结构构)。循循环环结结构构指指反反复复执执行行某某一一部部分分的的操操作作,有有当当型型(WHILE型型)循循环环、直直到到型型(UNTIL型型)循环和计数型循环和计数型(FOR-NEXT
20、)循环。循环。第20页,共173页,编辑于2022年,星期一图5.5 选择结构图 第21页,共173页,编辑于2022年,星期一 4.结构化程序设计的特点结构化程序设计的特点三种基本循环结构的共同特点如下:三种基本循环结构的共同特点如下:(1)只有一个入口。只有一个入口。(2)只只有有一一个个出出口口。尽尽管管一一个个菱菱形形判判断断框框有有两两个个出出口口,但但由由它它构构成成的的一一个个选选择择结结构构仍仍只只有有一一个个出出口口。不不要将菱形框的出口和选择结构的出口混淆。要将菱形框的出口和选择结构的出口混淆。(3)各各功功能能框框均均可可执执行行。结结构构内内的的每每一一部部分分都都有有
21、机机会会被被执执行行到到,也也就就是是说说,对对每每一一个个框框而而言言,都都应应当当有有一条从入口到出口的路径通过它。一条从入口到出口的路径通过它。第22页,共173页,编辑于2022年,星期一 (4)结构中无死循环。结构中无死循环。实实践践证证明明,由由以以上上三三种种基基本本结结构构顺顺序序组组成成的的算算法法结结构构,可可以以解解决决任任何何复复杂杂的的问问题题。由由基基本本结结构构所所构构成成的的算算法法属属于于“结结构构化化”的的算算法法,它它不不存存在在无无规规律律的的转转向向,只只在在本本结结构构内内才才允允许许存存在在分分支支、向向前前或或向向后后的的跳跳转。转。基基本本结结
22、构构不不一一定定只只限限于于上上面面三三种种,只只要要具具有有上上述述四四个个特特点点的的都都可可以以作作为为基基本本结结构构。人人们们可可以以自自己己定定义义基本结构,并由这些基本结构组成结构化程序。基本结构,并由这些基本结构组成结构化程序。第23页,共173页,编辑于2022年,星期一5.2 5.2 顺序程序设计顺序程序设计 在在顺顺序序程程序序结结构构中中,完完全全按按顺顺序序逐逐条条执执行行指指令令序序列列,这这种种情情况况在在程程序序中中大大量量存存在在,但但仅仅由由顺顺序序结结构构构构成成的的作作为为完完整整的的程程序序则则很很少少见见。顺顺序序结结构构的的程程序序是是最最简单的程
23、序。简单的程序。第24页,共173页,编辑于2022年,星期一 【例【例5-1】将两个字节数据相加,并存放到一个结将两个字节数据相加,并存放到一个结果单元中。果单元中。DATASEGMENTAD1DB4CH;定义第;定义第1个加数个加数AD2DB25H;定义第;定义第2个加数个加数SUM DB?;定义结果单元;定义结果单元DATAENDSCODESEGMENT第25页,共173页,编辑于2022年,星期一ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,AD1;取出第;取出第1个加数个加数ADDAL,AD2;和第;和第2个加数相加个加数相加M
24、OVSUM,AL;存放结果;存放结果MOVAH,4CHINT21H;返回;返回DOSCODEENDSENDSTART第26页,共173页,编辑于2022年,星期一【例【例5-2】两个两个32位数的乘法程序。位数的乘法程序。.386DATA SEGMENTNUM1DD12345678H;定义第;定义第1个乘数个乘数NUM2DD5A4BEF06H;定义第;定义第2个乘数个乘数RESULTDD2DUP(?);定定义义结结果果单元单元DATAENDSCODESEGMENT第27页,共173页,编辑于2022年,星期一ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,
25、AXMOVEAX,NUM1;取出第;取出第1个乘数个乘数MULNUM2;和第;和第2个乘数相乘个乘数相乘第28页,共173页,编辑于2022年,星期一MOV RESULT,EAX;存放结果的低;存放结果的低4字节部分字节部分MOV RESULT+4,EDX;存放结果的高;存放结果的高4字节部分字节部分MOV AH,4CH;INT21H;返回;返回DOSCODEENDSENDSTART第29页,共173页,编辑于2022年,星期一 【例例5-3】将将一一个个字字节节压压缩缩BCD码码转转换换为为两两个个ASCII码。码。分分析析:一一个个字字节节的的压压缩缩BCD码码就就是是用用一一个个字字节节
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 程序控制结构及其程序设计PPT讲稿 程序控制 结构 及其 程序设计 PPT 讲稿
限制150内