如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第五章程序设计方法和上机调试编写汇编语言程序步骤分析实际问题,抽象描述问题的模型确定解决模型的算法按算法画出程序流程图按流程图编写程序上机调试,运行程序判断程序质量的标准程序的正确性程序的可读性程序的执行时间程序所占内存大小执行框判别框开始结束框连接点指向线顺序程序结构是一种最简单的程序结构。在流程图中,处理框一个接一个执行,既无分支,也无循环和转移。是一种简单的程序结构。例1:START:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVSP,OFFSETTOPMOVBX,OFFSETTABLENEXT:MOVDX,OFFSETBUFMOVAH,9;输出提示INT21HMOVAH,1;键入一个数INT21HMOVAH,0ANDAL,0FHADDBX,AXMOVAL,[BX]MOVAH,4CHINT21HRETMAINENDPCODEENDSENDSTART补充:有关字符、数码转换的处理1.计算机处理字符时,常用的字符编码是ASCII码。2.数字和字母的ASCII码是一个有序序列数字0~9:30H~39H大写字母A~Z:41H~5AH小写字母a~z:61H~7AH3.计算机处理信息时,其对象都是二进制数。外设(显示器、打印机、键盘等)用ASCII码与CPU进行信息传送。例如:1)在键盘上按下某一字符键(如’9’),键盘接口向键盘缓冲区送去的是该字符的ASCII码(如39H),不是送数字09H。2)在文本方式下,要在显示器上显示某一字符(如’A’),须将该字符的ASCII码(如41H)送显示缓冲区,不是送数字0AH。例将CPU运算的结果通过显示器显示时,如二进制数“A9”需将结果转换成其对应的ASCII码才能进行显示。例CPU要处理从键盘输入的某一数据,如键入“1234”需将该数据串进行转换后才能应用。例将BX寄存器中的内容以十六进制形式显示出来。算法:取出要显示的某4位,转换为对应的ASCII码,再调用DOS系统功能进行显示。codeSEGMENTASSUMECS:codestart:MOVCH,4;字符个数MOVCL,4;循环移位次数next:ROLBX,CL;取显示位的值MOVDL,BL;保存在DL中ANDDL,0FH;清除高4位ADDDL,30H;转变为数字的ASCIICMPDL,39H;大于39H,则应转变JLEprint;为字母A~F的ASCIIADDDL,07Hprint:MOVAH,2H;显示DL中的字符INT21HDECCH;显示结束?JNZnextMOVAH,4CH;返回DOSINT21HcodeENDSENDstart1、分支:分支程序结构要求程序在运行过程中需要根据不同的情况或条件作出判断,并转向相应的处理程序。分支是通过条件转移指令实现的。(AX)=0?例3:在以BUF为首地址的内存,存放着一个长度为N(N<256)的字符串,编程统计其中数字,字母和其它字符的个数,统计数存放在串后三个单元中。先介绍第二种DOS返回方法:采用下面的程序框架DATASEGMENTBUFDBNDB01H,38H,…76HNUMDB3DUP(?)DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATASTART:PUSHDSSUBAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVCH,NMOVBX,1MOVDX,0LP:MOVAH,BUF[BX]CMPAH,30HJLNEXT;小于‘0’转CMPAH,39H2、多分支MOVAH,1INT21H;1号功能调用,键盘输入CMPAL,‘1’JEP1;键值为1,转P1CMPAL,‘2’JEP2;键值为2,转P2:CMPAL,‘8’JEP8;键值为8,转P8JMPST;非法键,转停机P1:…;1号键加工子程序P2:…;2号键加工子程序P8:…;8号键加工子程序ST:HLT3、跳转表实现多分支跳转表中存放着转移指令,查表后程序执行转移指令将转到相应的子程序去。教材P174例5-5(3)根据关键字分支三、循环程序设计循环程序可以有两种结构形式:DOWHILE结构、DOUNTIL结构循环程序组成部分:1、循环初始化2、循环体3、循环修改4、循环控制DATASEGME