第五章控制转移指令与分支程序设计_第1页
第五章控制转移指令与分支程序设计_第2页
第五章控制转移指令与分支程序设计_第3页
第五章控制转移指令与分支程序设计_第4页
第五章控制转移指令与分支程序设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章控制转移指令与分支程序设计,汇编语言程序设计,(3)分支结构(4)子程序结构,程序结构,(5)复合结构:多种程序结构的组合,(1)顺序结构(2)循环结构,5.0顺序程序设计,顺序程序完全按指令书写的前后顺序执行每一条指令,是最基本、最常见的程序结构一般纯粹的顺序结构的程序设计较少。,例,datasegmentXdw5Ydw6Zdw7Wdw?dataendscodesegmentassumecs:code,ds:datastart:,movax,Xaddax,Yaddax,ZmovW,axmovah,4chint21hcodeendsendstart,WX+Y+Z,分支结构循环结构,5.1循环与分支结构程序的结构,用于实现分支、循环、过程等程序结构的指令称为“控制转移类指令”。控制转移类指令通过改变IP(和CS)值,实现程序执行顺序的改变。,无条件转移指令JMP条件转移指令JZ/JNZ、JE/JNE、JS/JNS、JO/JNO、JP/JNP、JB/JNB、JL/JNL、JBE/JNBE、JLE/JNLE、JCXZ循环指令LOOP、LOOPZ/LOOPE、LOOPNZ/LOOPNE子程序调用和返回指令CALL、RET中断与中断返回指令INT、INTO、IRET,控制转移指令:,无条件转移指令:JMP,指格令式:JMP地址表达式指令功能:无条件地转移到由地址表达式所确定的目标单元。,例:代码段内有一条无条件转移指令如下:JMPHELLOHELLO:MOVAL,3,段内转移(只修改IP的值),段间转移(同时修改CS和IP的值),直接转移,间接转移,转移行为,短转移,近转移,段间直接转移,段间间接转移,8086CPU的转移行为分为:,段内转移(只修改IP的值),直接转移,间接转移,JMPSHORTOPR(IP)(IP)+8位位移量IP的变化范围为-128+127,短转移,近转移,JMPNEARPTROPR(IP)(IP)+16位位移量IP的变化范围为-32768+32767,JMPWORDPTROPR(IP)(EA),8086CPU的转移行为分为:,实际编程时,汇编程序会根据目标地址的距离,自动处理成短转移、近转移或远转移程序员可用操作符short、nearptr或farptr强制,段间转移同时修改CS和IP的值。,段间转移(同时修改CS和IP的值),段间直接远转移:JMPFARPTROPR(IP)OPR的段内偏移地址(CS)OPR所在段的段地址,段间间接转移:JMPDWORDPTROPR(IP)(EA)(CS)(EA+2),例题:,assumecs:codecodesegmentstart:movax,0jmpshortsaddax,1s:incaxcodeendsendstart,条件转移指令:注意:只能使用段内直接寻址的8位位移量(1)根据单个条件标志的设置情况转移格式测试条件JZ(JE)OPRZF=1JNZ(JNE)OPRZF=0JSOPRSF=1JNSOPRSF=0JOOPROF=1JNOOPROF=0JPOPRPF=1JNPOPRPF=0JCOPRCF=1JNCOPRCF=0,为区别有符号数的大小,无符号数的大小用高(Above)、低(Below)表示格式测试条件小于()JB(JNAE,JC)OPRCF=1大于等于()JNB(JAE,JNC)OPRCF=0小于等于()JBE(JNA)OPRCFZF=1大于JNBE(JA)OPRCFZF=0*适用于地址或双精度数低位字的比较,(2)比较两个无符号数,并根据比较结果转移*,(3)比较两个带符号数,并根据比较结果转移*判断有符号数的大(Greater)、小(Less)格式测试条件小于()JL(JNGE)OPRSFOF=1大于等于()JNL(JGE)OPRSFOF=0小于等于()JNG(JLE)OPR(SFOF)ZF=1大于()JG(JNLE)OPR(SFOF)ZF=0*适用于带符号数的比较(4)测试CX的值为0则转移格式测试条件JCXZOPR(CX)=0,例:X,Y为带符号数,如果X50,转到TOO_HIGH;否则做X-Y,如果溢出转到OVERFLOW,否则计算X-Y|,并把结果存入RESULT中。,MOVAX,XCMPAX,50JGTOO_HIGHSUBAX,YJOOVERFLOWJNSNONNEGNEGAXNONNEG:MOVRESULT,AXTOO_HIGH:OVERFLOW:,例:、是双精度数,分别存于DX,AX及BX,CX中,时转L1,否则转L2,CMPDX,BXJGL1JLL2CMPAX,CXJAL1L2:L1:,课堂练习:P113,3.36,MOVDX,X+2MOVAX,XADDAX,XADCDX,X+2CMPDX,Y+2JLL2JGL1CMPAX,YJBEL2L1:MOVAX,1JMPSHORTEXITL2:MOVAX,2EXIT:INT20H,判断并比较p*2与q的大小关系,若p*2q,则转向L1,使(AX)=1后退出;若p*2q,则转向L2,使(AX)=2后退出。,datareasegmentmessg1dbpleaseinputacapitalletter(A-Z):,0dh,0ah,$datareaendscodesegmentassumecs:code,ds:datareastart:movax,datareamovds,axleadx,messg1;在屏幕上显示提示信息movah,09int21hmovah,1;接收用户输入的一个字符,并显示在屏幕上int21h,上机实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论