补充汇编语言程序设计.pptx
《补充汇编语言程序设计.pptx》由会员分享,可在线阅读,更多相关《补充汇编语言程序设计.pptx(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、6.1 汇编语言程序设计基本方法和基本步骤 汇编语言程序设计基本步骤 结构化程序的概念 流程图画法规定 返回本章首页第1页/共77页汇编语言程序设计的一般步骤汇编语言程序设计的一般步骤汇编语言程序设计一般有以下几个步骤:1分析问题,抽象出描述问题的数学模型 2确定解决问题的算法或解题思想3绘制流程图和结构图4分配存储空间和工作单元5.编制程序6.程序静态检查 7.上机调试 返回本节第2页/共77页结构化程序的概念 所谓结构化程序设计是指程序的设计、编写和测试都采用一种规定的组织形式进行,而不是想怎么写就怎么写。这样,可使编制的程序结构清晰,易于读懂,易于调试和修改,充分显示出模块化程序设计的优
2、点。在20世纪70年代初,由Boehm和Jacobi提出并证明的结构定理:即任何程序都可以由3种基本结构程序构成结构化程序,这3种结构是:顺序结构、分支(条件选择)结构和循环结构。每一个结构只有一个入口和一个出口,3种结构的任意组合和嵌套就构成了结构化的程序。第3页/共77页1顺序结构顺序结构是按照语句实现的先后次序执行一系列的操作,它没有分支、循环和转移 2分支结构(条件选择结构)分支结构根据不同情况做出判断和选择,以便执行不同的程序段。分支的意思是在两个或多个不同的操作中选择其中的一个。分为双分支结构和多分支结构 第4页/共77页3循环结构循环结构是重复执行一系列操作,直到某个条件出现为止
3、。循环实际上是分支结构的一种扩展,循环是否继续是依靠条件判断语句来完成的。按照条件判断的位置,可以把循环分为“当型循环”和“直到型循环”。第一种情况是先作条件判断,第二种情况是先执行一次循环,然后判断是否继续循环。基本逻辑图下图所示。第5页/共77页第6页/共77页流程图画法规定 1流程图的概念流程图是由特定的几何图形、指向线、文字说明来表示数据处理的步骤,形象描述逻辑控制结构以及数据流程的示意图。流程图具有简洁、明了、直观的特点。2流程图符号表示流程图符号表示(1)起止框:表示程序的开始和结束。起止框第7页/共77页(2)判断框(3)处理框(4)调用框 第8页/共77页(5)指向线(6)连接
4、框 返回本节第9页/共77页6.2 顺序程序设计下面举例说明顺序程序的设计。【例6.1】试编写一程序计算以下表达式的值。=(v-(*+-540)/x式中x、v均为有符号字数据。设、的值存放在字变量、V中,结果存放在双字变量之中,程序的流程图如图6.1所示。返回本章首页第10页/共77页图6 6.1 1 顺序运算程序流程图第11页/共77页源程序如下:DATASEGMENTXDW200YDW100ZDW3000VDW10000WDW2 DUP(?)DATAENDSSTACKSEGMENT STACK DB 200 DUP(0)STACKENDSCODESEGMENTASSUME DS:DATA,
5、CS:CODE,SS:STACK第12页/共77页START:MOVAX,DATAMOVDS,AX;DATAAXMOVAX,X IMULY;(X)*(Y)DX:AXMOVCX,AXMOVBX,DX;(DX:AX)(BX:CX)MOVAX,ZCWD;(Z)符号扩展ADDCX,AXADCBX,DX;(BX:CX)+(DX:AX)(BX:CX)SUBCX,540SBBBX,0;(BX:CX)-540(BX:CX)MOVAX,V 第13页/共77页CWD;(V)符号扩展SUBAX,CXSBBDX,BX;(DX:AX)-(BX:CX)(DX:AX)IDIVX;(DX:AX)/XMOVW,AX;商WMOV
6、W+2,DX;余数DXW+2MOVAH,4CHINT21HCODEENDS;退出DOS 状态ENDSTART第14页/共77页【例6.2】【例6.2】已知某班学生的英语成绩按学号(从1开始)从小到大的顺序排列在TAB表中,要查的学生的学号放在变量NO中,查表结果放在变量ENGLISH中。编写程序如下:第15页/共77页STACKSEGMENT STACKDB 200 DUP(0)STACKENDSDATASEGMENTTAB DB 80,85,86,71,79,96 DB 83,56,32,66,78。84NO DB 10ENGLISTDB?DATAENDSCODESEGMENT第16页/共7
7、7页 ASSUME DS:DATA,SS:STACK,CS:CODEBEGIN:MOVAX,DATAMOVDS,AXLEABX,TAB MOVAL,NODELALXLATTABMOVENGLISH,ALMOVAH,4CHINT21HCODEENDSENDBEGIN第17页/共77页6.3 分支程序的结构和程序设计分支程序的结构形式分支结构的程序设计返回本章首页第18页/共77页分支程序的结构形式 8086/8088指 令 系 统 具 有 许 多 种 条 件 转 移 指 令,这 就 说 明8086/8088计算机系统具有很强的逻辑判断能力,并且能够根据这种逻辑判断选择执行不同的程序段。也就是说,
8、当条件满足时进行某种处理,当条件不满足时又进行另外一种处理。分支程序的结构可以有两种形式:双分支结构和多分支结构。流程图如下所示。第19页/共77页(1)双分支结构第20页/共77页(2)双分支结构第21页/共77页(3)多分支结构程序设计第22页/共77页分支结构程序设计1简单的双分支程序设计【例6.3】已知在内存中有一个字节单元NUM,存有带符号数据,要求计算出它的绝对值后,放入RESULT单元中。题目分析:根据数学中绝对值的概念知道,一个正数的绝对值是它本身,而一个负数的绝对值是它的相反数;要计算一个数的相反数,需要完成减法运算,即用0减去这个数。8086/8088指令系统中有专门的求相
9、反数的指令NEG。流程图如下:第23页/共77页第24页/共77页程序如下:DATA SEGMENT X DB -25 RESULT DB?DATA ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODESTART:MOVAX,DATA MOVDS,AX;初始化 MOVAL,X ;X取到AL中第25页/共77页 TEST AL,80H;测试AL正负 JZ NEXT ;为正,转NEXT NEG AL ;否则AL求补NEXT:MOV RESULT,AL;送结果 MOV AH,4CH INT 21H;返回DOSCODE ENDS END START ;汇编结束第26页/共77
10、页2多分支程序设计多分支程序设计多分支结构是有若干个条件,每一个条件对应一个基本操作。分支程序就是判断产生的条件,哪个条件成立,就执行哪个条件对应操作的程序段。也就是说,从若干分支中选择一个分支执行。多分支结构实现的方法有:条件选择法、转移表法和地址表法。条件选择法一个条件选择指令可实现两路分支,多个条件选择指令就可以实现多路分支。这种方法适用于分支数较少的情况。第27页/共77页用条件转移指令实现程序分支用条件转移指令实现程序分支【例6.4】编写计算下面函数值的程序:1X0Y=0X=0 -1X设输入数据为X、输出数据Y,且皆为字节变量。程序流程图如下图所示。第28页/共77页第29页/共77
11、页程序如下:DATA SEGMENT X DB -25 Y DB?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX ;初始化 MOV AL,X ;X取到AL中第30页/共77页CMP AL,0 ;Al中内容和0比较JGE BIG ;大于等于0,转BIGMOV BL,-1 ;否则为负数,1送BLJMP EXIT ;转到结束位置BIG:JE EE ;Al中内容是否为0,为0转EEMOV BL,1 ;否则为大于0,1送BL JMP EXIT ;转到结束位置EE:MOV BL,0 ;0送BL第31页/共77页
12、 EXIT:MOV Y,BL ;BL中内容送Y单元 MOV AH,4CH INT 21H ;程序结束CODE ENDS END START;汇编结束第32页/共77页【例6.5】【例6.5】试编一程序,求三个带符号字数据中的最大值,并将最大值存入MAX字单元中。设三个带符号数分别在三个字变量X、Y、Z中存储。程序流程图如下图所示 第33页/共77页第34页/共77页程序如下:STACSEGMENT STACK DB 200 DUP(0)STACKENDSDATASEGMENTX DW 00ABHY DW 5Z DW 200MAX DW?DATAENDSCODESEGMENT第35页/共77页
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 补充 汇编语言 程序设计
限制150内