微机原理7_汇编语言程序设计08.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:191 大小:1MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

微机原理7_汇编语言程序设计08.ppt

微机原理7_汇编语言程序设计08.ppt

预览

免费试读已结束,剩余 181 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第七章汇编语言程序设计7.1汇编语言程序设计的一般步骤7.1.1流程图1.流程图的概念流程图是由特定的几何图形、指向线、文字说明来表示数据处理的步骤,形象描述逻辑控制结构以及数据流程的示意图。流程图具有简洁、明了、直观的特点。(2)判断框(5)指向线7.1.2程序结构7.2程序设计8源程序如下:DATASEGMENTXDW200YDW100ZDW3000VDW10000WDW2DUP(?)DATAENDSSTACKSEGMENTSTACKDB200DUP(0)STACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODE,SS:STACKSTART:MOVAX,DATAMOVDS,AX;DATA→AXMOVAX,XIMULY;(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,VCWD;(V)符号扩展SUBAX,CXSBBDX,BX;(DX:AX)-(BX:CX)→(DX:AX)IDIVX;(DX:AX)/XMOVW,AX;商→WMOVW+2,DX;余数DX→W+2MOVAH,4CHINT21HCODEENDS;退出DOS状态ENDSTART7.2.2分支程序设计1.单分支类型AX≥0?2.双分支程序双分支举例:显示BX的最高位。shlbx,1jcone;转分支体movdl,’0’;分支体1jmpnext;转后续操作One:movdl,’1’;分支体2next:movah,2;后续操作int21h分支程序的其他问题⑴有些双分支问题可以先假设一种情况,把双分支改成单分支问题。如上例,先假设BX最高位为0,在分支外准备显示0;如最高位为0,即可直接跳到后续操作;如最高位为1才需要执行分支体。3.多分支程序例4-19(p149)数据块传送程序DATASEMENTSTRGDB1000DUP(?)STG1EQUSTRG+7STG2EQUSTRG+25STRSEEQU50DATAENDSSTACKSEGMENTPARASTACK‘STACK’STRNDB100DUP(?)STACKENDSCOSEGSEGMENTASSUMECS:COSEG,DS:DATA,ES:DATA,SS:STACKBBEGIN:MOVAX,DATAMOVDS,AXMOVES,AXMOVCX,STRSEMOVSI,OFFSETSTG1MOVDI,OFFSETSTG2CLDPUSHSIADDSI,STRSE-1CMPSI,DIPOPSIJBOKSTDADDDI,STRSE-1ADDSI,STRSE-1OK:REPMOVSBMOVAH,4CHINT21HCOSEGENDSENDBEGIN循环程序设计7.2.3循环程序设计(重复执行的程序段)p1541.循环程序的组成初始化部分:设置循环条件、次数、初值等。循环体部分:重复执行的代码,含循环条件的修改等。循环控制部分:判断循环条件,决定是否继续。2.两种循环结构1)“先循环、后判断”结构相当于高级语言的“直到型”循环2)“先判断、后循环”结构相当于高级语言的“当型循环”,可实现0次循环。循环条件成立?3.循环程序设计编写循环程序的关键在于循环的控制。循环次数已知:可用LOOP指令,CX计数。如教材p154。循环次数和ZF标志:可用LOOPZ、LOOPNZ指令。例如7.6循环次数未知:通常要采用各类条件转移指令实现循环控制。如字符串以0结尾;字符串以$结尾。例如7.7循环程序例题分析:例7.5:计算100个数字之和。仅用循环次数控制,且循环次数已知,比较简单。例7.6:确定一个字变量中为1的最低位数。从最低位向高位依次测试,最多测试16次;测试到某位为1,即可结束程序,测试结果用ZF标志反映,因此可用LOOPE或LOOPZ控制循环(结果非0,退出)。例7.7:将一个字符串中的所有大写字母改为小写字母,字符串以0结尾。循环次数未知,应使用条件判断控制循环;循环结构应使用“先判断、后执行”的结构;通常,采用条件判断控制循环时,往往采用“先判断、后执行”的循环结