《分支结构程序设计》PPT课件

《分支结构程序设计》PPT课件

ID:36768969

大小:215.25 KB

页数:17页

时间:2019-05-10

《分支结构程序设计》PPT课件_第1页
《分支结构程序设计》PPT课件_第2页
《分支结构程序设计》PPT课件_第3页
《分支结构程序设计》PPT课件_第4页
《分支结构程序设计》PPT课件_第5页
资源描述:

《《分支结构程序设计》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章分支结构程序设计分支结构是一种非常重要的程序结构,也是实现程序功能选择所必要的程序结构。由于汇编语言需要书写转移指令来实现分支结构,而转移指令肯定会破坏程序的结构,所以,编写清晰的分支结构是掌握该结构的重点,也是用汇编语言编程的基本功。在程序中,当需要进行逻辑分支时,可用每次分二支的方法来达到程序最终分多支的要求,也可是用地址表的方法来达到分多支的目的。在高级语句中,分支结构一般用IF语句来实现,在汇编语言中,课用无条件转移指令或条件转移指令实现的分支结构。如图6.2给出了二种常用的分支结构。在编写分支程序时,要尽可能避免编写“头重脚轻”的结构,即:当前分支条件成立时,将执

2、行一系列指令,而条件不成立时,所执行的指令很少。这样就使后一个分支离分支点较远,有时甚至会遗忘编写后一分支程序。这种分支方式不仅不利于程序的阅读,而且也不便将来的维护。所以,在编写分支结构时,一般先处理简单的分支,再处理较复杂的分支。对多分支的情况,也可遵循“由易到难”的原则。因为简单的分支只需要较少的指令就能处理完,一旦处理完这种情况后,在后面的编程过程中就可集中考虑如何处理复杂的分支。7.2转移指令1.条件转移指令根据条件标志位的状态判断的转移指令这组条件转移指令共有10条。①JZ结果为零则转移。②JNZ/JNE结果不为零则转移。③JS结果为负则转移。④JNS结果为正则转移。

3、⑤JO溢出则转移。⑥JNO不溢出则转移。⑦JP/JPE奇偶位为1则转移。⑧JNP/JPO奇偶位为0则转移⑨JC进位为1则转移。⑩JNC进位为0则转移。根据两个无符号数的比较结果判断的转移指令指令用于两个无符号数a、b的比较。①JB/JNAE低于/不高于等于转移。②JNB/JAE不低于/高于等于则转移。③JBE/JNA低于等于/不高于则转移。④JNBE/JA不低于等于/高于则转移。根据两个带符号数的比较结果判断的转移指令本指令用于两个有符号数a、b的比较。①JL/JNGE小于/不大于等于则转移。②JNL/JGE不小于/大于等于则转移。③JLE/JNG小于等于/不大于则转移。④JG/

4、JNLE大于/不小于等于则转移。计算AX的绝对值cmpax,0jnsnonneg;分支条件:AX≥0negax;条件不满足,求补nonneg:movresult,ax;条件满足cmpax,0jlyesneg;分支条件:AX<0jmpnonnegyesneg:negax;条件不满足,求补nonneg:movresult,ax;条件满足无条件转移指令1.段内转移1)段内转移直接寻址JMPABC2)段内转移间接寻址JMPCXJMPWORDPTR[BX]2.段间转移1)段间转移直接寻址JMPFARPTRTAG2)段间转移间接寻址JMPDWORDPTR[BX][SI]编写一程序段,计算下列

5、函数值。其中:变量X和Y是有符号字变量。…MOVAX,XCMPAX,0JGEcase23ADDAX,10;第一种情况的计算结果JMPresultcase23:CMPAX,10DJGcase3MOVBX,30DIMULBX;第二种情况的计算结果JMPresultcase3:SUBAX,9;第三种情况的计算结果result:MOVY,AX;把计算结果保存到变量Y中…多分支程序设计多个条件对应各自的分支语句体,哪个条件成立就转入相应分支体执行。多分支可以化解为双分支或单分支结构的组合,地址表形成多分支需要在数据段事先安排一个按顺序排列的转移地址表输入的数字作为偏移量。因为只有2个字节1

6、6位偏移地址,所以偏移量需要乘2关键是要理解间接寻址方式JMP指令DATASSEGMENTbasedwm0dwm1dwm2mes0db'first','$'mes1db'second','$'mes2db'third','$‘DATASENDSSTACKSSEGMENT;此处输入堆栈段代码STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXmovah,8int21hcmpal,‘0';数字<0?jbstartcmpal,‘2';数字>2?jastartmovah,0anda

7、l,0fh;将ASCII码转换成数字addal,almovbx,axjmpbase[bx];(段内)间接转移:IP←[base+bx]m0:movdx,offsetmes0jmpdispm1:movdx,offsetmes1jmpdispm2:movdx,offsetmes2jmpdispdisp:movah,09hint21hmovah,01hint21hMOVAH,4CHINT21HCODESENDSENDSTART

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

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

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