资源描述:
《分支结构程序设计资料课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微型计算机原理及应用第4章 汇编语言程序设计结构程序设计程序的每个部分都由有限结构结合中的单元组成,并且只有单一的入口和单一的出口。基本结构有:顺序结构(线性结构)选择结构(分支结构)循环结构三种结构可以任意组合和嵌套构成复杂的程序。程序的基本结构顺序程序:一种无分支的程序,CPU从第一条指令开始依次执行每一条指令,直到最后一条指令。特点:指令顺序执行,无分支、无循环、无转移顺序程序4.4汇编语言程序设计基础4.4.2顺序程序※[例4-11]对于三个无符号数编写S=86H*34H-21H。DATASEGMENTMUNDB86H,34H,21HRESU
2、LTDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,MUNLEADI,RESULTMOVAL,[SI]STARTS1S2S3结束MOVBL,[SI+1]MULBLMOVBL,[SI+2]MOVBH,0SUBAX,BXMOV[DI],AXMOVAH,4CHINT21HCODEENDSENDSTART[例4-12]内存自TABLE开始的连续16个单元中存放着0-15的平方值,查表求DATA中任意数X(0≤X≤15)的平方值,并将结果放RESULT中。程序:D
3、SEGSEGMENTTABLEDB0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225;定义平方表DATADB?RESULTDB?DSEGENDSSSEGSEGMENTSTACK‘STACK’DB100DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEG,SS:SSEGBEGIN:MOVAX,DSEG;初始化数据段MOVDS,AXMOVAX,SSEG;初始化堆栈段MOVSS,AX;LEABX,TABLE;置数据指针MOVAH,0;MOVAL,DATA;取待查数ADD
4、BX,AX;查表MOVAL,[BX];MOVRESULT,AL;平方数存RESULT单元MOVAH,4CHINT21HCSEGENDSENDBEGIN4.4.3分支程序分支程序是利用条件转移指令,使程序执行到某一指令后,就有一个分叉,根据条件是否满足,来改变程序执行的顺序。条件1条件2分支程序段2分支程序段3结束是否否分支程序段1是结束条件转移指令是某些标志位的状态来决定转移的。条件转移指令全部是段内转移(SHORT)。指令的格式:JCLabel;CF=1有进位转移JNCLabel;CF=0无进位转移JZ/JELabel;ZF=1结果为“0”或相等转
5、移JNZ/JNELabel;ZF=0,结果不为“0”或不相等转移。无条件转移JMPLABEL条件转移指令例1:写一个实现把一位十六进制数转化为对应ASCII码的程序。分析命题确定算法十六进制数码与ASCII对应的关系:0123………BCDEF30H31H32H33H42H43H44H45H46H这种对应关系可表示为一个分段函数:YX+30H(0<=X<=9)X+37H(0A<=X<=0FH)分析命题确定算法画流程图开始取十六进制数X+30H0<=X<=9YN0A<=X<=0FHX+37H结束YN例:写一个实现把一位十六进制数转化为对应ASCII码的程
6、序。DATASEGMENTXXDB4ASCIIDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,XXCMPAL,9JALAB1ADDAL,30H分支程序举例JMPLAB2LAB1:ADDAL,37HLAB2:MOVASCII,ALMOVAH,4CHINT21HCODEENDSENDSTART※例2:内存中有一串字节型的带符号数,其始地址为BUF,串长度N=9,要求统计正数和零的个数,并将个数在CRT上显示出来。分析1.最多有9个数据,程序处理时需要地址指针
7、,选BX2.统计正数和零的个数,得有个地方放,用DL3.个数在CRT上显示,可用DOS功能调用:MOVDL,要显示的数对应的ASCII码先放到DL中MOVAH,02HINT21H4.将DL中的个数转换成ASCII码,可用ADDDL,30H(因为个数N=9)。分支程序举例最大数是9,数值和他的ASCII码时两码事,9是统计出来的数值,显示时需要数的ASCII码,并放在DL中。所以需要上面的ADD指令将DL+30就可以数值转换成他的ASCII码。DATASEGMENTBUFDB01H,32H,38H,5AH,43H,49H,41H,54H,00HDATA
8、ENDS设置数据段放那需要辨识的9个数据CODESEGMENTASSUMEDS:DATA,CS:CODEST