微机原理与接口技术43 汇编语言程序设计基本方法课件.ppt

微机原理与接口技术43 汇编语言程序设计基本方法课件.ppt

ID:57122816

大小:286.00 KB

页数:56页

时间:2020-08-01

微机原理与接口技术43 汇编语言程序设计基本方法课件.ppt_第1页
微机原理与接口技术43 汇编语言程序设计基本方法课件.ppt_第2页
微机原理与接口技术43 汇编语言程序设计基本方法课件.ppt_第3页
微机原理与接口技术43 汇编语言程序设计基本方法课件.ppt_第4页
微机原理与接口技术43 汇编语言程序设计基本方法课件.ppt_第5页
资源描述:

《微机原理与接口技术43 汇编语言程序设计基本方法课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章程序设计的基本方法微机原理与接口技术2015.104.4汇编语言程序设计方法4.4.1概述4.4.2分支程序设计4.4.3循环程序设计4.4.4子程序设计21.循环程序的结构4.4.3循环程序设计计数控制、条件控制2.循环控制方法3.单重循环程序设计4.多重循环程序设计3置循环初值部分工作部分修改部分控制部分已结束未结束置循环初值部分工作部分修改部分控制部分已结束4.4.3.1循环程序的结构4设以BUF为首址的一片单元中,存放了N个有符号的字节数据。BUFDB1,-10,20,-25,25,50,…N=$-BUF请找出其中的最大数,并

2、存放到AL中。解题思路:将BUF视为数组:ALBUF[0]FOR(i=1;iBUF[i])ALBUF[i];例5……MOVAL,BUFMOVBX,1L1:CMPBX,NJGEEXITCMPAL,BUF[BX]JGEL2MOVAL,BUF[BX]L2:INCBXJMPL1EXIT:……若BUF中存放的字数据,程序应作何修改?最大数放在AX中。6计数控制:循环次数已知时,常用(1)倒计数将循环次数n,送入一循环计数器中,某循环一次,计数器减1,直到其值为0。……MOVCX,循环次数LOOPA:…………DECCXJN

3、ELOOPA4.4.3.2循环控制方法7计数控制:循环次数已知时,常用(2)正计数循环次数n。0送入一循环计数器中,某循环一次,计数器加1,直到其值为n。……MOVCX,0LOOPA:…………INCCXCMPCX,nJNELOOPA4.4.3.2循环控制方法88086提供的四种计数控制循环转移指令LOOP标号(CX)-1CX若(CX)不为0,则转标号处执行。注意:LOOP指令对标志位无影响!4.4.3.2循环控制方法例:MOVCX,5MOVAX,0L1:ADDAX,CXDECCXJNZL1MOVCX,5MOVAX,0L1:ADDAX,CX

4、LOOPL198086提供的四种计数控制循环转移指令(2)LOOPE/LOOPZ标号(CX)-1CX若(CX)不为0,且ZF=1,则转标号处执行,否则顺序执行。(等于或为0循环转移指令,本指令对标志位无影响)例:判断以BUF为首址的10个字节中是否有非0字节。MOVCX,10MOVBX,OFFSETBUF-1L3:INCBXCMPBYTEPTR[BX],0LOOPEL310(3)LOOPNE/LOOPNZ标号(CX)-1CX若(CX)不为0,且ZF=0,则转标号处执行。(等于或为0循环转移指令,本指令对标志位无影响)例:判断以MSG为首

5、址的10个字节中的串中是否有空格字符。MOVCX,10MOVBX,OFFSETMSG-1L4:INCBXCMPBYTEPTR[BX],‘’LOOPNEL48086提供的四种计数控制循环转移指令11(4)JCXZ/JECXZ标号;功能:当寄存器CX的值为0时转移到标号处执行,否则顺序执行。该指令常放在循环开始前,用于检查循环次数是否为0,为0时跳过循环体;也常与比较指令等组合使用,用于判断是由于计数值的原因还是由于满足比较条件而终止循环。例:MOVCX,COUNTJCXZGO1L1:……LOOPL1GO1:……8086提供的四种计数控制循环转

6、移指令12使用固定的寄存器CX;所有的循环转移指令本身实施的对CX的值减1的操作不影响标志位;16位段的程序,LOOP、LOOPZ、LOOPNZ缺省使用CX寄存器;标号为短标号,即位移量只能为-128~127之间。使用循环控制指令LOOP注意13条件控制:循环次数未知。但是循环结束与某些条件(比较、运算的结果等等)相关,比较所要求的条件是否达到,未满足继续循环,否则结束循环。在解决实际问题时,往往要根据问题给定的已知条件,在认真分析算法之后才能确定选用哪种方法。14例1:已知有n个元素存放在以BUF为首址的字节存储区中,试统计其中负数的个数

7、L1.asm·循环n次;·有些同学认为在循环体中,每次访问下一个单元:L1:….INCBUFDECCXJNZL1;将BUF的地址加1错误的原因,实质为将BUF的内容加1。4.4.3.2单重循环程序设计一、循环次数已知的循环程序设计通常采用倒计数的方法(LOOP)15DATASEGMENTBUFDB-2,5,-3,6,100,0,-20,-9,8,-100,20N=$-BUFRDW?DATAENDSCODESEGMENT……LEABX,BUFMOVCX,NMOVAX,0LOPA:CMP[BX],BYTEPTR0JGENEXTINCAXNEXT

8、:INCBXDECCXJNELOPAMOVR,AXMOVAH,4CHINT21HCODEENDSENDBEGIN16二、循环次数未知的循环程序设计——用条件控制循环4.4.3.2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。