资源描述:
《汇编程序设计基本方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、5.汇编程序设计基本方法5.1汇编语言程序结构5.2子程序设计与调用5.3DOS功能调用(补充)前面几章主要介绍了指令系统中的各种指令,这些指令是编写汇编程序的工具。本章将学习编写汇编程序。序言:(1)分析问题,明确要求;(2)建立数学模型:即将解决问题的方法用数学语言表达出来(3)确定算法:即转化为计算机解法;画出程序流程图;编码,调试;整理资料,投入使用。汇编程序设计基本过程:汇编程序设计特点:模块化、结构化本章学习要求1、掌握三种结构程序的设计方法,领会结构化程序设计的思想。3、掌握几种DOS功能调用,了解BIOS
2、功能调用,能从功能调用表中查找到满足自己要求的DOS功能并给出正确的调用参数。2、掌握子程序设计和调用方法。5.1汇编语言程序结构分支结构子程序结构复合结构:多种程序结构的组合…顺序结构循环结构一、顺序结构程序设计例:MOVAX,XMOVDX,X+2ADDAX,YADCDX,Y+2;?ADDAX,24ADCDX,0;x+y+24SUBAX,ZSBBDX,Z+2;x+y+24-zMOVW,AXMOVW+2,DX;结果存入W,W+2单元二、循环结构程序设计循环结构:包括当型和直到型两种。WHILE结构DO-UNTIL结构控制
3、条件初始化循环体YN控制条件初始化循环体YN循环类型:循环结构的组成部分:初始化部分:设置循环的初始状态。类似C语言for(inti=1;i<10;i++)中的inti=1循环体部分:循环工作的主体部分。调整部分:调整循环的次数。类似C语言for(inti=1;i<10;i++)中的i++控制部分:控制循环的结束。类似C语言for(inti=1;i<10;i++)中的i<10单重循环嵌套循环(多重循环):即循环结构内又有循环四条循环控制指令:循环指令:LOOPOPR循环判断条件:(CX)0为零或相等时循环指令:LOOP
4、Z/LOOPEOPR循环判断条件:ZF=1且(CX)0不为零或不相等时循环指令:LOOPNZ(LOOPNE)OPR循环判断条件:ZF=0且(CX)0LOOPOPRDECCXJNZOPR因此,用跳转指令也能实现循环单重循环程序举例例:试编制一个程序把BX寄存器中的二进制数以十六进制数的形式显示在屏幕上。分析:BX1234画流程图:ASCII码表programsegment;definecodesegmentmainprocfarassumecs:programStart:pushds;saveolddatasegmen
5、tsubax,axpushax;0偏移地址入栈movch,4;numberofdigitsrotate:movcl,4;setcountto4bitsrolbx,clmoval,blandal,0fh;提取出低4位addal,30h;’0’~’9’ASCII30H~39Hcmpal,3ah;判断是否是大于9jlprintitaddal,7h;’A’~’F’ASCII41H~46Hprintit:movdl,al;调用DOS功能的入口参数movah,2int21hdecch;判断是否已显示了4个数字jnzrotateret
6、mainendpprogramendsend例:试编制一程序实现从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为BUFFER的缓冲区中(空格符不存入),直到接收到第二个空格符时退出程序。Datasegmentbufferdb80dup(?)flagdb?DataendsPrognamSegmentassumecs:Prognam,ds:Datastart:pushds;setupstackforreturesubax,axpushaxmovax,Da
7、tamovds,ax;mainpartofprogramgoeshereleabx,buffermovflag,0next:movah,01;调用DOS1号子功能int21h;从键盘接收一个字符testflag,01hjnzfollow;判断是否是第一个字符cmpal,20h;判断是否是空格符jnzexitmovflag,1jmpnextfollow:cmpal,20hjzexitmov[bx],al;置入缓冲区incbxjmpnextexit:ret;returntoDOSmainendpPrognamendsends
8、tart多重循环程序举例例:有一个首地址为A的字类型数组,试编制程序使该数组中的数按从小到大排序。设数组中的元素为32,85,16,15,8序号地址数比较遍数12341A322A+2853A+4164A+6155A+88321615885161583285158163285815163285冒泡法排序算法……movc