分支程序设计课件.ppt

分支程序设计课件.ppt

ID:57013166

大小:210.00 KB

页数:23页

时间:2020-07-26

分支程序设计课件.ppt_第1页
分支程序设计课件.ppt_第2页
分支程序设计课件.ppt_第3页
分支程序设计课件.ppt_第4页
分支程序设计课件.ppt_第5页
资源描述:

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

1、分支程序设计在问题的求解过程中,根据某种条件的判断作出选择,从而进行不同的处理。指令串A指令串BYN判断条件转移指令转移无条件转移JMP条件转移(18条)简单条件转移无符号条件转移有符号条件转移执行JMP指令后,程序转移到新的“目的位置”执行。无条件转移指令无条件转移指令的一般格式:JMP目的位置CODESEGMENTASSUMECS:CODESTART:MOVDL,20HONE:MOVAH,2INCDLJMPONE;转移到“ONE”处继续执行JMP$CODEENDSENDSTART[例]用JMP指令实现转移条件转移指令

2、“J”是条件转移指令操作码的第一个字母“cc”是代表转移条件的1~3个字母“label”是转移目的地的标号。条件转移指令格式:Jcclabel(1)根据两个有符号数比较结果的条件转移指令两个有符号数的比较结果通过OF,SF,ZF反映出来G(Greater,大于)L(Less,小于)E(Equal,等于)N(Not,否)例:JG/JNLE大于(不小于等于)则转移JNL/JGE不小于(大于或等于)则转移JE/JZ等于(为零)则转移指令助记符指令功能转移条件JG(JNLE)大于(不小于等于)时转移OF⊕SF=0且ZF=0JGE

3、(JNL)大于等于(不小于)时转移OF⊕SF=0JZ(JE)为零(相等)时转移ZF=1JNZ(JNE)不为零(不相等)时转移ZF=0JL(JNGE)小于(不大于等于)时转移OF⊕SF=1JLE(JNG)小于等于(不大于)时转移OF⊕SF=1或ZF=1根据有符号数大小的条件转移指令MOVAX,X;取出X的值送AXCMPAX,Y;比较两个操作数,建立需要的标志位JGGREATER;如果X>Y,转移到“GREATER”处执行JEEQUAL;如果X=Y,转移到“EQUAL”处执行LESS:;否则,执行标号“LESS”处的指令……

4、GREATER:……EQUAL:……下面程序根据有符号字变量X和Y的大小决定程序的走向。JGGREATER;如果X>Y,转移到“GREATER”处JEEQUAL;如果X=Y,转移到“EQUAL”处JLLESS;如果X<Y,转移到“LESS”处LESS:……下面程序能够正确运行,但最后一条指令有“画蛇添足”之嫌。(2)根据两个无符号数比较结果的条件转移指令两个有符号数的比较结果通过CF,ZF反映出来,代表转移条件的字母:A(Above,高于)B(Below,低于)E(Equal,等于)指令助记符指令功能转移条件JA,JNB

5、E高于(不低于等于)时转移CF=0且ZF=0JAE,JNB,JNC高于等于(不低于)时转移CF=0JZ,JE为零(相等)时转移ZF=1JNZ,JNE不为零(不相等)时转移ZF=0JB,JNAE,JC低于(不高于等于)时转移CF=1JBE,JNA低于等于(不高于)时转移CF=1或ZF=1根据无符号数大小的条件转移指令(3)根据单个标志位的条件转移指令指令操作码助记符指令功能转移条件JC有进位时转移CF=1JNC无进位时转移CF=0JZ,JE为零(相等)时转移ZF=1JNZ,JNE不为零(不相等)时转移ZF=0JS为负时转移

6、SF=1JNS为正时转移SF=0JO溢出时转移OF=1JNO不溢出时转移OF=0JP,JPE“1”的个数为偶数时转移PF=1JNP,JPO“1”的个数为奇数时转移PF=0SUBAX,BX;AX←(AX)-(BX),建立标志位JGESKIP;如果(AX)≥0,转标号“SKIP”NEGAX;如果(AX)<0,把AX的值取反SKIP:CMPAX,BXJGGREATER;如果AX>BX,转移到“GREATER”处JEEQUAL;如果AX=BX,转移到“EQUAL”处……大部分的条件跳转指令都是和CMP指令相配合使用。例如:但也可

7、以不跟在CMP指令后面,可以在某运算类指令的后面。常用的还有TEST指令。因为只要该指令能影响标志位,就可以后跟条件跳转类指令。例如,下面的程序计算AX=

8、AX-BX

9、选择结构程序基本选择结构单分支选择结构复合选择结构多分支选择结构基本选择结构复合分支选择结构多分支选择结构在选择结构程序里,如果可供选择的程序块多于两个,这样的结构称为多分支选择结构,如下图(a)所示,下图(b)是汇编语言程序的实现方法。datasegmentxdb24h;判断变量X的值是否为“偶数”ydb?;如果是偶数y=2;奇数y=1dataendsc

10、odesegmentassumecs:code,ds:datastart:movax,datamovds,axtestx,01hjzoushumovy,1jmpfinishoushu:movy,2finish:jmp$codeendsendstart[例2]判断变量X的值是否为“偶数”为“

11、X

12、>3”和“

13、X

14、≤3”

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

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

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