欢迎来到天天文库
浏览记录
ID:46302670
大小:208.50 KB
页数:106页
时间:2019-11-22
《现代微机原理及接口技术 第04章 程序设计技巧》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第四章 程序设计技巧汇编语言的程序设计是使用计算机系统的指令或伪指令语句,组成求解不同问题,实现不同算法所需的完整序列的一个工作过程。汇编语言的程序设计方法一般包含顺序、分支、循环、子程序和宏等基本方法。进一步学习指令、伪指令的使用。掌握汇编语言顺序、分支、循环程序的设计方法。子程序的设计与调用。宏结构的设计与调用。中断程序的设计。I/O程序的设计。模块程序的设计。4.1顺序程序结构形式顺序程序又称作简单程序。指无分支、无循环、无转移的程序。它一般是根据算法编出的完全顺序执行的程序。虽然实际应用的程序比它复杂的多,但它是构成程序的基础,
2、它的质量直接影响整个程序的质量,为此如何充分利用硬件资源,合理地选择指令是编制简单程序,提高整个程序质量的关键。.MODELSMALL.STACK256.DATABCD_BUFDB79HASC_BUFDB2DUP(?).CODE.STARTUPMOVAL,BCD_BUFMOVBL,ALMOVCL,4SHRAL,CLADDAL,30HMOVASC_BUF,ALANDBL,0FHADDBL,30HMOVASC_BUF+1,BL.EXIT0END4.2分支程序分支结构就是按照某种判断条件,从两个或两个以上的程序段中选择一个执行。分支结构具有两
3、种形式:双分支结构和多分支结构条件控制伪指令条件控制伪指令的格式.IF条件表达式.分支体1[.ELSEIF条件表达式.分支体2~N-1.][.ELSE.分支体N.].ENDIF.MODELSMALL.STACK.DATAXDW-78YDW7865RESULTDW?.CODE.STARTUPMOVAX,XSUBAX,YJGEGREATERZERO;AX≥Y?,跳转NEGAX;求补,得到副值GREATERZERO:MOVRESULT,AX.EXIT0END.MODELSMALL.STACK.DATA_ASBYTE39;有符号方式定义_BSB
4、YTE-43H_CSBYTE110TAGDB?.CODE.STARTUPMOVAL,_BIMULALMOVBX,AX;BX←B2MOVAL,_AIMUL_CMOVCL,2SALAX,CL;AX←4AC.IFSWORDPTRBX>=AXMOVTAG,0.ELSEIFMOVTAG,1.ENDIF.EXIT0END双分支程序设计通常双分支程序是根据条件是否成立,从两个分支程序中选择其中一个分支程序去执行。双分支程序设计可用一条条件转移指令来实现,也可以用.IF-.ELSEIF-.ENDIFT条件控制伪指令来设计,这是分支程序设计的最基本方法。
5、(1)产生条件在进行条件判断之前,必须要有先行指令产生条件。产生条件的指令为执行结果影响标志位的指令,如算术运算指令、位操作指令、串比较串扫描指令等,最常用的指令为CMP/TEST/AND/SCASB/CMPSB。(2)判断条件判断条件用条件转移指令JZ/JNZ、JC/JNC等共计19条,我们应选择合适的条件转移指令之一完成。(3)定向按条件成立与否确定转移方向。(4)标号对每个分支程序,一定要给出标号,以确定分支后的转移地址。注意:根据条件成立与否,两个分支之程序段,只能现在选择其中之一执行。.MODELSMALL.STACK.DAT
6、AXDB56YDB78ZDB99F1DB?.CODE.STARTUPMOVAL,XMOVBL,ALADDAL,YJNCDO1;若无进位则转DO1ADDBL,ZJMPQUITDO1:SUBBL,ZMOVF1,BLQUIT:.EXIT0END4.3循环程序循环程序一般包括以下五个部分:(1)初始化部分:为循环做准备工作。如设置地址指针(BX/SI/DI/BP),计数器(CL/CH/CX)及数据寄存器(AL/AX/DX)的初值等。(2)循环工作部分:即循环体部分。它是循环程序的主体,用来完成循环的基本操作。(3)修改部分:为循环参数做必要的修
7、改,如地址指针(BX/SI/DI/BP),计数器(CL/CH/CX)的值,为下一次执行循环体做好准备。(4)循控部分:根据循环条件来判断、控制循环的继续或终止。(5)结束部分:主要是对循环的结果进行必要的处理,如将结果送入某一寄存器或内存区域。循环控制指令及伪指令循环控制指令LOOP/LOOPZ/LOOPE/LOOPNZ/LOOPNE/JCXZ注意:在执行此类重复控制指令前必须把重复次数送入寄存器CX中串操作指令高级循环控制伪指令其它循环控制指令DEC和JZ/JNZ指令配合。CMP和JZ/JNZ;JC/JNC;JO/JNO等指令配合。A
8、ND/OR/XOR/TEST和JZ/JNZ;JC/JNC;JO/JNO等指令配合。循环程序设计方法计数控制法。这种程序设计方法直观,方便,但必须在循环次数已知的条件下才能采用。计数控制法有正计数控制法和倒计
此文档下载收益归作者所有